Php不会将数据输入数据库

时间:2017-03-22 19:45:00

标签: php mysql forms mysqli xampp

所以我试图将我的表单提交中的数据放入mysql数据库,但每当我提交表单时,它都会给我这个错误:错误:INSERT INTO form_submissionsID,{ {1}},firstlastphone)VALUES([value-1],[value-2],[value-3],[value-4],[值-5])

现在这是我的PHP代码:

class

4 个答案:

答案 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。如果是,则不需要将值传递给它。