所以我试图将我的表单提交中的数据放入mysql数据库,但每当我提交表单时,它都会给我这个错误:错误:INSERT INTO form_submissions
(ID
,{ {1}},first
,last
,phone
)VALUES([value-1],[value-2],[value-3],[value-4],[值-5])
现在这是我的PHP代码:
class
答案 0 :(得分:0)
假设ID是自动递增的,而其他ID是文本,
$sql = "INSERT INTO `form_submissions`(`first`, `last`, `phone`,
`class`) VALUES ('$value','$value1','$value2','$value3')";
答案 1 :(得分:0)
您的查询应该是:
INSERT INTO `form_submissions`(`first`, `last`, `phone`, `class`)
VALUES ('John','doe', '98564', 'SOMECLASS');
检查:回显$ sql查询并在phpmyadmin中调试它。
注意:如果您启用了AUTO_INCREMENT,则可以忽略该列的数据Feed。它将自动完成工作。
安全提示 - > 要防止SQLi注入,请查看此post。
答案 2 :(得分:-2)
有两件事是错的。
首先是你给5个字段(ID,First,last,phone,class) 而且您的帖子中只有4个变量。如果在数据库中将列设置为自动增量,我认为您不需要在插入上发送ID,因此不要为ID字段发送值。
您的变量未正确插入查询中。 [value-1] douse并不意味着$ value1变量将自动注入其中。 这可以通过很多方式完成 我会给你一个简单的解决方案,(但对于真正的网站来说它会是一个糟糕的解决方案)。简单的解决方案是:
$sql = "INSERT INTO `form_submissions`(`first`, `last`, `phone`,`class`) VALUES (`$value`,`$value1`,`$value2`, `$value3`)";
这个错误的原因是:您在查询中直接输入发布数据,现在可以使用SQL注入。您需要将您的帖子数据转义为将其插入查询中。或者更好的是不要使用'mysqli'而是使用PDO。 这里可以找到一个好的PDO示例 https://www.w3schools.com/php/php_mysql_insert.asp
我希望这会有所帮助。
答案 3 :(得分:-3)
您的SQL显然是错误的。看起来应该是这样的:
$sql = "INSERT INTO `form_submissions`(`ID`, `first`, `last`, `phone`,
`class`) VALUES ($value1,$value2,$value3,$value4,$value5)";
字段ID应为auto_increment。如果是,则不需要将值传递给它。