首页 > 数据库 > mysql教程 > 为什么我的 PHP MySQL INSERT 查询中出现'列计数与值计数不匹配”错误?

为什么我的 PHP MySQL INSERT 查询中出现'列计数与值计数不匹配”错误?

Barbara Streisand
发布: 2024-11-29 10:51:09
原创
576 人浏览过

Why Am I Getting a

PHP 和 MySQL 中的列计数和值计数不匹配错误

尝试使用 PHP 向 MySQL 数据库插入数据时,可能会遇到错误:

Column count doesn't match value count at row 1
登录后复制

当您尝试插入表中的值的数量与该表中定义的列数不匹配时,就会发生此错误

了解错误

在您的具体情况下,错误很可能是由提供的代码中显示的查询引起的:

$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($method),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));
登录后复制

解决错误

要解决错误,您需要检查代码和数据库定义以识别缺失值。在本例中,您似乎已在 INSERT 中声明了 9 列语句:

  • id
  • 名称
  • 描述
  • 简短描述
  • 中成分
  • 方法
  • 长度
  • 添加日期
  • 用户名

但是,插入的值仅占 8 个值(因为图像列不包含在列表中)。

解决方案

要修复错误,您可以添加方法列的缺失值或修改数据库定义以匹配您要插入的值的数量。如果您选择第一个选项,请按如下方式更新查询:

$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));
登录后复制

以上是为什么我的 PHP MySQL INSERT 查询中出现'列计数与值计数不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板