我的sql问题列数与第1行的值计数不匹配

时间:2012-03-02 22:52:57

标签: mysql sql

我的sql:

$tsqla="INSERT INTO xcal (id, date, 1sfta, 1sftb, 2sfta, 2sftb, 3sfta, 3sftb, 4sfta, 4sftb, 5sfta, 5sftb, 6sfta, 6sftb, location) VALUES ('NULL','" . $tsdate . "', '". implode("','",$date_array[$jyr.'-'.$jmnth.'-'.$jday])."','E')";

打印出来像这样:

INSERT INTO xcal (id, date, 1sfta, 1sftb, 2sfta, 2sftb, 3sfta, 3sftb, 4sfta, 4sftb, 5sfta, 5sftb, 6sfta, 6sftb, location) 
VALUES ('NULL','2010-008-31', '0','0','0','0','0','0','0','0','0','0','0','0','E')

有15列,15个值,为什么我会害怕: “列数与第1行的值计数不匹配” 任何帮助表示赞赏:D

1 个答案:

答案 0 :(得分:0)

由于ID已经auto-incremented,您可以在查询子句中省略它。然后,您应该在backtick的某个字段中添加date,因为它在MySQL中是RESERVED word

$tsqla="INSERT INTO xcal (`date`, 1sfta, 1sftb, 2sfta, 2sftb, 3sfta, 3sftb, 
                          4sfta, 4sftb, 5sfta, 5sftb, 6sfta, 6sftb, `location`) 
        VALUES ('" . $tsdate . "', '". implode("','",
                 $date_array[$jyr.'-'.$jmnth.'-'.$jday])."','E')";

尝试这个,如果它的工作原理。还有一件事,还要检查各自的数据类型。 INT字段的值必须为no single quote