【发布时间】:2019-10-28 08:28:55
【问题描述】:
我在 mysql 数据库中插入值,但我一次又一次地收到相同的错误。我还查看了stackoverflow,但这些问题都没有解决我的查询。我还用数据库列重新检查了我的查询值。所有值都映射到数据库中对应的列:
这里是插入的 PHP 代码:
"INSERT INTO posts VALUES('','$title', '$category', '$tags' '$details', '$added_by', '$user_to', '$date_added', 'no', ‘不’, 0)”
数据库字段如下:
id、标题、类别、标签、详细信息、added_by、user_to、date_added、user_closed、deleted、like
我尝试通过 Internet 和 stackoverflow 寻找解决方案,但每个解决方案都提到数据库或插入查询中的列数不匹配。但是我的代码中没有发现这个错误。
$query = mysqli_query($this->con, "INSERT INTO posts VALUES('','$title', '$category', '$tags' '$details', '$added_by', '$user_to', '$date_added', 'no', 'no', 0)");
我希望值输入数据库,但它们没有输入,我面临错误“列数与第 1 行的值计数不匹配”
【问题讨论】:
-
您对 SQL 注入持开放态度。由于您使用的是 mysqli,因此请利用 prepared statements 和 bind_param。 这将解决可能发生的任何令人讨厌的引用问题。例如,任何文本字段中的多个单引号都会破坏您的查询。
-
是否也尝试过传递列名?
-
@aynber 我不认为这个问题
-
@aynber 是 100% 正确的。但是,您的问题是您没有指定要输入数据的列。问题是您的 id 列没有被使用。所以有 11 列,只有 10 个值。
-
需要使用列名插入结构。
标签: php mysqli sql-insert