使用 fmdb 写入 sqlite db?
Posted
技术标签:
【中文标题】使用 fmdb 写入 sqlite db?【英文标题】:Writing to sqlite db using fmdb? 【发布时间】:2010-07-10 17:41:48 【问题描述】:好的,所以我知道 fmdb 已经完全过时了,核心数据就在它所在的位置,但现在,我只需要调整我正在开发的应用程序,它使用 fmdb 从资源文件夹中的 sqlite db 读取.
我需要能够写入我的数据库。执行查询的最佳方式是什么?我尝试做与从数据库读取相同的事情:
FMResultSet * set = [[UIApp database] executeQuery:[customQueries selectAll], book];
我将字符串 selectAll 从 SELECT 语句更改为 INSERT INTO 语句,并将变量 book 传递给插入,但这似乎不起作用...
我错过了什么?我需要做什么才能写入我的 sqlite 数据库?谢谢!
【问题讨论】:
fmdb
并没有过时,它正在积极开发中。 ;)
【参考方案1】:
要插入,您可以这样做,其中 db 是对您的 FMDatabase 的引用:
[db executeUpdate:@"insert into theTable (field1, field2) values(?, ?)",
theField1, theField2, nil];
确保参数列表末尾有一个 nil(查询中的 2 个问号表示两个参数和一个 nil),并确保您使用 NS 类型作为参数。如果你尝试使用 int 作为参数,它会崩溃,你需要使用 NSNumber 来代替。
【讨论】:
【参考方案2】:FMDatabase* db = [FMDatabase databaseWithPath:dbPath];
FMResultSet *rs = [db executeQuery:@"select * from table"];
while ([rs next])
NSLog(@"%d", [rs intForColumn:@"id"];
// Close the result set.
[rs close];
// Close the database.
[db close];
【讨论】:
您忘记打开数据库了,否则仍然不正确,因为他们要求的是插入和更新数据库的方法,而不是选择数据记录。以上是关于使用 fmdb 写入 sqlite db?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IOS Swift 中使用 SQLite 使用 FMDB 处理多个线程
如何在 swift 3 中使用现有的 SQLite? (FMDB)