[英]blank entries in mysql php
我是mysql php的新手,我一直在努力使這個簡單的名稱輸入表單起作用,但是由於插入空白條目而使我失敗了。 我一直在網上尋找一陣子,但沒有任何幫助。
這是我的HTML表格
<form action="demo.php" method="post">
name:<input type="text" name="input1">
<br/>
<input type="submit" value="submit">
</form>
我的PHP代碼
<?php
define('db_name', 'demo');
define('db_user', 'root');
define('db_password', 'password');
define('db_host', 'localhost');
$link = mysql_connect (db_host, db_user, db_password);
if (!$link) {
die('could not connect: '. mysql_error());
}
$db_selected = mysql_select_db(db_name, $link);
if (!$db_selected) {
die('can\'t use' . db_name . ': ' . mysql_error());
}
$value = $_post['input1'];
$sql = "insert into demo (name) values ('$value')";
if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}
mysql_close();
?>
MySQL表
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
嘗試這個:
首先檢查文本輸入的值,然后在查詢中使用它。
$ value = $ _POST ['input1'];
echo $ value; 出口;
檢查$value
。 您獲得在文本框中輸入的值嗎?
如果是,則在查詢中使用它。
- 謝謝
我很驚訝您沒有在PHP手冊中的所有mysql_*
函數上看到大的紅色警告(粉紅色?)警告。 總結一下...
警告此擴展自PHP 5.5.0起不推薦使用,以后將被刪除。 相反,應使用MySQLi或PDO_MySQL擴展。
因此,根據該建議,建議您嘗試mysqli 。
關於您的特定問題,我想說的就是Fred在評論中所說的, $_post
應該是$_POST
。 在PHP中,變量名稱區分大小寫。
您還應該准備INSERT語句,並使用參數綁定來避免SQL注入漏洞。
這是一個總結的例子...
$link = new mysqli('localhost', 'root', 'password', 'demo');
if ($link->connect_errno) {
throw new Exception($link->connect_error, $link->connect_errno);
}
// Check that the expected value has been provided via a POST request
if (!isset($_POST['input1'])) {
throw new Exception('Missing POST request parameter [input1]');
}
// now prepare an INSERT statement
if (!$stmt = $link->prepare('INSERT INTO `demo` (`name`) VALUES (?)')) {
throw new Exception($link->error, $link->errno);
}
// bind parameters
$stmt->bind_param('s', $_POST['input1']);
if (!$stmt->execute()) {
throw new Exception($stmt->error, $stmt->errno);
}
也可以使用: $value = filter_input(INPUT_POST, 'var_name')
,當然,您應該開始使用PDO。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.