大家好,如果这段代码有误,请告诉我。这不起作用。它没有在我的数据库中添加任何内容。谢谢!
$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=' Add Record '/>
</form>
答案 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注入。