PHP,MySQL错误:列计数与第1行的值计数不匹配

max*_*ax_ 46 php mysql

我收到这个错误:

Column count doesn't match value count at row 1

从以下代码:

$name = $_GET['name'];
$description = $_GET['description'];
$shortDescription = $_GET['shortDescription'];
$ingredients = $_GET['ingredients'];
$method = $_GET['method'];
//$image = $_GET['image'];
$username = $_GET['username'];
$length = $_GET['length'];
$dateAdded = uk_date();
$conn = mysql_connect('localhost', 'dbname', 'pass');
mysql_select_db('dbname');
$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));

    $result = mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

错误是什么意思?

Ign*_*ams 84

您列出了9个字段,但只有8个值.尝试添加方法.

  • 然后你没有解决问题.因为*是*问题. (14认同)

Tha*_*san 13

插入查询中的列参数数量为9,但您只提供了8个值.

INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
Run Code Online (Sandbox Code Playgroud)

查询应该省略"id"参数,因为它是自动生成的(或者应该是无论如何):

INSERT INTO dbname (Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')
Run Code Online (Sandbox Code Playgroud)

祝好运!


小智 6

您的查询有8个甚至可能是9个变量,即.名称,描述等但是值,这些东西---> '', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",只有7个,变量的数量必须与值相同.

我有同样的问题,但我想出来了.希望它也适合你.

  • 请注意,这个问题已经得到解答.除非你能添加新的东西,否则无需复活一个1.5岁的帖子.无论如何,谢谢你的努力. (4认同)