PHP插入命令不起作用

时间:2014-03-18 01:44:22

标签: php mysql insert

大家好,如果这段代码有误,请告诉我。这不起作用。它没有在我的数据库中添加任何内容。谢谢!

$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>

2 个答案:

答案 0 :(得分:1)

列名应包含在反引号中而不是引号

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

或删除引号

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

我建议您使用mysqli_*prepared statements移至PDO个功能。

您将$acc_class = $_POST['acc_class'];更改为

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

暂时。

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

答案 1 :(得分:0)

至少:

$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注入。