2012-03-02 36 views
0

我的SQL:我的SQL問題列數並不在行匹配值計數1

$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

+0

這是什麼數據庫(mySQL,SQL Server,Oracle)?任何字段標識字段? – Sparky 2012-03-02 22:57:00

+0

你也試圖把一個字符串null到一個ID字段? – Julien 2012-03-02 23:07:25

+0

mySql,是的id是零,因爲它是autoinc – 2012-03-02 23:23:59

回答

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

+0

仍然一樣:她的代碼和字符串 – 2012-03-03 00:28:40

+0

$ 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') 「; (''日期',1sfta,1sftb,2sfta,2sftb,3sfta,3sftb,4sfta,4sftb,5sfta,5sftb,6sfta,6sftb,位置)VALUES('2010-05-31' ,'0','0','0','0','0','0','0','0','0','0','0','0',' E') – 2012-03-03 00:29:53

+0

它們是varchars,'0',14和14,有趣的是我在代碼的另一部分使用相同的語句:$ tsqla =「INSERT INTO xcal id,date,1sfta,1sftb,2sfta, 2sftb 3sfta 3sftb 4sfta 4sftb 5sfta 5sftb 6sfta 6sftb位置VALUES('', ' - ' $ jmnth .'- '$ jday])。。 「', '0', '0', '0', '0', 'X')」; – 2012-03-03 00:31:45

相關問題