【问题标题】:Error: Column count doesn't match value count at row 1 - output错误:列计数与第 1 行的值计数不匹配 - 输出
【发布时间】:2014-12-30 03:06:28
【问题描述】:

我收到此错误:“列计数与第 1 行的值计数不匹配”

<?php

 mysql_connect("$host", "$username", "$password") or die(mysql_error());
echo"Connected";
 mysql_select_db("$database") or die(mysql_error());
echo"Database Found";

 mysql_query("INSERT INTO $table(id, author, title, savetext) VALUES ('1','id1')") or     die(mysql_error());
 mysql_query("INSERT INTO $table(id, author, title, savetext) VALUES ('2','author1')") or die(mysql_error());
 mysql_query("INSERT INTO $table(id, author, title, savetext) VALUES ('3','title1')") or die(mysql_error());
 mysql_query("INSERT INTO $table(id, author, title, savetext) VALUES ('4','savetext1')") or die(mysql_error());

echo"Data Inserted";

 mysql_close();

 ?>

!http://i.imgur.com/SHemm6v.png

【问题讨论】:

  • 那个错误信息你不明白怎么办?它准确地告诉你出了什么问题。
  • 强制抨击使用 mysql 而不是 mysqli 或 PDO 我真的认为 StackOverflow 可以自动执行此操作 - 任何时候有人发布使用 mysql 函数的 PHP 代码,它都可以自动添加关于sql注入的评论。
  • @JohnConde 打败了我。

标签: php mysql database


【解决方案1】:

我认为您正在尝试使用单独的语句将值插入每列?不不不,只需在一个声明中完成。

mysql_query("INSERT into $table (id, author, title, savetext) VALUES ('id1', 'author1', 'title1', 'savetext1')");

现在,在 StackOverflow 上引起轰动之前,请阅读 Mysqli,因为 mysql 命令已被弃用并且容易受到 sql 注入和其他不良事件的影响。

【讨论】:

    【解决方案2】:

    不言自明。您将 2 个值插入 3 列。

    如果 id 是一个自动递增的列,你甚至不需要插入它。 MySQL 会为您做到这一点。

    如果您不想将数据插入特定列,则可以不将它们包含在字段列表中,也可以将 NULL 插入其中:

    INSERT INTO $table(id, author) VALUES ('1','id1')

    【讨论】:

      【解决方案3】:
      1. 你必须给所有提到的列赋值..

        mysql_query("插入 $table(id, author, title, savetext)

        VALUES ('1','id1', '', '')")
        

      2. 跳过没有要插入的值的列[名称]..

        mysql_query("INSERT INTO $table(id,author) VALUES ('1','id1')")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-03
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 2021-10-17
        • 1970-01-01
        相关资源
        最近更新 更多