我有一個使用FMDB庫的iOS應用程序。Objective-c FMDB插入withParameterDictionary和自動遞增鍵
有7個字段的SQLite數據庫(1個自動增量,6個常規文本字段)。
我試圖執行
[db executeUpdate:@"INSERT INTO messages VALUES (:field1,:field2,:field3,:field4,:field5,:field6)" withParameterDictionary:message];
然而,因爲只有6場,我得到一個錯誤。我不能插入自動增量值,因爲我不知道它是什麼(我想我可以爲這個單獨的查詢...)。我試圖避免注射敏感的語法
NSString* sql = [NSString stringWithFormat:@"insert into messages (%@) values (%@)", [newCols componentsJoinedByString:@", "], [newVals componentsJoinedByString:@", "]];
謝謝你的建議!
我想你有一個自動遞增的ID列。您不必爲此列提供任何內容,因爲它是由數據庫自動插入的。 – 2013-02-23 18:13:27
如果我省略:值部分中的primarykey,我得到錯誤: 表消息有7列但提供了6個值; 如果我爲pk發送一個零對象,我得到錯誤 錯誤:綁定計數(6)對於查詢(7)中的變量數不正確; 如果我使用@「」作爲主鍵,則自從主鍵以整數形式獲得「數據類型不匹配」。 – selytch 2013-02-23 19:08:53
您是否看到我的回答,並幫助您? – 2013-02-24 13:48:51