首页 >数据库 >mysql教程 >为什么我在 MySQL INSERT 语句中收到'列计数与第 1 行的值计数不匹配”错误?

为什么我在 MySQL INSERT 语句中收到'列计数与第 1 行的值计数不匹配”错误?

DDD
DDD原创
2024-12-01 00:19:11801浏览

Why am I getting a

PHP、MySQL 错误:列计数差异

错误“列计数与第 1 行的值计数不匹配”表示不匹配SQL INSERT 语句中指定的列数与提供的值的数量之间。

在此特定中例如,您有以下代码:

$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    //mysql_real_escape_string($image),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

SQL 语句包含 9 列:id、Name、Description、shortDescription、Ingredients、Method、Length、dateAdded 和 Username。但是,您只提供了 8 个值:$name、$description、$shortDescription、$ingredients、$length、$dateAdded、$username 和 $method。

要解决该错误,您需要添加方法列缺少值。确保您从输入中捕获方法数据。一旦你这样做了,你的查询应该是:

$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    mysql_real_escape_string($method),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

以上是为什么我在 MySQL INSERT 语句中收到'列计数与第 1 行的值计数不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn