2015-04-22 31 views
1

我編寫下面是什麼:錯誤插入值到FMDB當

[db executeUpdate:@"INSERT INTO usercart (id, productid, name, description, campaignid, startdate, enddate, martid, martname, price, update) VALUES (?,?,?,?,?,?,?,?,?,?,?)",(int)cartItem.databaseId,(int)cartItem.itemId,cartItem.itemName,cartItem.itemDescription,(int)cartItem.campaignId,cartItem.campaignStartDate,cartItem.campaignEndDate,(int)cartItem.martId,cartItem.martName,(int)cartItem.itemPrice,cartItem.lastUpdate] 

而且我得到了低於erorr和消息:

DB Error: 1 "near "update": syntax error" 
DB Query: INSERT INTO usercart (id, productid, name, description, campaignid, startdate, enddate, martid, martname, price, update) VALUES (?,?,?,?,?,?,?,?,?,?,?) 
DB Path: file:///var/mobile/Containers/Data/Application/2F08F458-BAB3-4523-B942-68ABF67CACF6/Documents/HaffleMonster.sqlite 
Error Domain=FMDatabase Code=1 "near "update": syntax error" UserInfo=0x170e65740 {NSLocalizedDescription=near "update": syntax error} 
near "update": syntax error 

我不知道爲什麼。我認爲我是正確的sqlite和fmdb的語法你能解釋爲什麼嗎?

回答

1

我不認爲你可以使用update作爲變量名稱,因爲它被SQL使用。就像你不能使用insertinto作爲變量名稱一樣。

您可能需要更改變量名稱或使用[]封裝它,如[update]。這樣記載:

...price, [update]) VALUES (?,?,?... 
+0

謝謝@Niklas – LKM

+0

但編輯表並插入代碼後,我得到了一個錯誤:無法找到所有列的索引。你能解釋爲什麼嗎?我認爲我面臨另一個問題 – LKM

+0

對不起,我不熟悉FMDB。這聽起來像您需要爲您創建的新列添加索引。如果這樣做不起作用,我會回到之前的操作('update'列),並在查詢中將其更改爲'[update]'。 – Niklas