我是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 | |
+-------+-------------+------+-----+---------+----------------+
答案 0 :(得分:1)
试试这个:
首先检查文本输入的值&amp;然后在查询中使用它。
$ value = $ _POST [&#39; input1&#39;];
echo $ value;出口;
检查$value
。你获得了在文本框中输入的价值吗?
如果是,则在查询中使用它。
- 感谢
答案 1 :(得分:1)
我很惊讶你没有在PHP manual的所有mysql_*
函数中看到大红色(粉红色?)警告。总结一下......
警告强> 自PHP 5.5.0起,此扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。
所以,根据这个建议,我建议你尝试 mysqli 。
关于你的具体问题,我会说正如弗雷德在评论中所说,$_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);
}
答案 2 :(得分:1)
你也可以使用:$value = filter_input(INPUT_POST, 'var_name')
,
当然你应该开始使用PDO。