将值插入 fmdb 时出错

Error when inserting value into 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]

我收到一条错误消息和以下消息:

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 的语法是正确的你能解释一下为什么吗?

我认为您不能使用 update 作为变量名,因为它已被 SQL 使用。就像你不能使用 insertinto 作为变量名一样。

您要么需要更改变量名,要么用[]封装它,就像这样[update]。所以它显示为:

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