【问题标题】:mysql - Column count doesn't match value count at row [duplicate]mysql - 列数与行中的值计数不匹配[重复]
【发布时间】:2015-03-11 09:06:23
【问题描述】:

错误: 列数与第 1 行的值数不匹配

代码:

mysql_query("INSERT INTO users VALUES('','$username', '$password', 
    '$icq', '$email', '$ip', now(), 'NULL', 0, 0.00, 0, '$ip',
    '0', '0', 0, 0,'0','0','$plainpw')") or die (mysql_error());

用户表:

INSERT INTO  `store`.`users` (
`username` ,
`password` ,
`icq` ,
`email` ,
`ips` ,
`regdate` ,
`lastlogin` ,
`failedlogin` ,
`balance` ,
`checkercredits` ,
`lastip` ,
`amount_purchased` ,
`amount_refunds` ,
`admin` ,
`banned`
)
VALUES (
'test',  'test',  '44444',  '4444@email.com',  '127.0.0.1',  '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0',  '0'
);

【问题讨论】:

  • 你的用户表的结构是什么?
  • 还有什么你不明白??它说列数不匹配所以...?
  • 您在INSERT 语句中为19 列指定了值,但users 表中的列数不是19。

标签: php mysql sql


【解决方案1】:

您输入的值太少或太多。计算表中的列数,并将其与您尝试插入的值的数量进行核对。

【讨论】:

    【解决方案2】:

    Mysql 扩展名已弃用。请使用 MysqliPDO 扩展名。请检查表中的列数。

    PDO_Mysql 的示例

    $link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);
    
    $statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
        VALUES(:fname, :sname, :age)");
    $statement->execute(array(
        "fname" => "text",
        "sname" => "text",
        "age" => "18"
    ));
    

    您将清楚地知道您缺少哪些列。谢谢

    【讨论】:

      【解决方案3】:

      您正在尝试将 19 个值插入一个有 15 列的表中...所以请确保它是正确的表,或者您正在插入正确的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-14
        相关资源
        最近更新 更多