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中文网其他相关文章!