【发布时间】:2013-02-09 05:21:18
【问题描述】:
我有一个使用 FMDB 库的 iOS 应用。
有 7 个字段的 SQLite DB(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 列。您不必为此列提供任何内容,因为它是由数据库自动插入的。
-
如果我在值部分省略 :primarykey,我会收到错误:表消息有 7 列,但提供了 6 个值;如果我为 pk 发送一个 nil 对象,则会收到错误错误:绑定计数 (6) 对于查询中的变量数 (7) 不正确;如果我使用 @"" 作为主键,我会得到“数据类型不匹配”,因为主键是整数。
-
你看到我的回答了吗?对你有帮助吗?
标签: objective-c sqlite fmdb