繁体   English   中英

PHP插入命令不起作用

[英]PHP Insert Command not working

嗨,大家好,请告诉我这段代码是否有错误。 这是行不通的。 它没有在我的数据库上添加任何内容。 谢谢!

$con = mysql_connect("localhost","root","pass");
if (!$con){
die("Can not connect: " . mysql_error());
}
mysql_select_db("mytable",$con);



if(isset($_POST['add'])){

// Variables

$acc_class = $_POST['acc_class'];

$AddQuery = "INSERT INTO mytable ('acc_class') VALUES ('$acc_class')";  

mysql_query($AddQuery, $con);

echo "Record Successfully Added!!";
};


mysql_close($con);

?>
<form action="add.php" method="post">

Account Classification:
<input  required="required" placeholder="e.g Hotel, Restaurant" type="text" name='acc_class' size=15 />

<input type="submit" name='add' Value='&nbsp;Add Record&nbsp;'/>
</form>

列名应该用反引号引起来,而不要用引号引起来

$AddQuery = "INSERT INTO mytable (`acc_class`) VALUES ('$acc_class')";

或删除引号

$AddQuery = "INSERT INTO mytable (acc_class) VALUES ('$acc_class')";

我建议您使用准备好的语句PDO转到mysqli_*函数。

并且您更改了$acc_class = $_POST['acc_class'];

$acc_class = mysql_real_escape_string($_POST['acc_class']);

暂且。

mysql_*函数已被弃用,并将从以后的PHP版本中删除。

最低限度:

$acc_class = $_POST['acc_class'];
$AddQuery = "INSERT INTO mytable ('acc_class') VALUES ('$acc_class')";

应该:

$acc_class = $_POST['acc_class'];
$AddQuery = "INSERT INTO mytable ('acc_class') VALUES ('".$acc_class."')";

同样,以这种方式将原始用户输入传递到SQL查询也是不安全的。 请阅读有关SQL注入的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM