好的我知道fmdb已经过时了,核心数据就在它的位置,但是现在,我只需要调整一个我正在使用的应用程序,它使用fmdb从资源文件夹中的sqlite数据库中读取。
我需要能够写入我的数据库。执行查询的最佳方法是什么?我尝试过做同样的事情,从db中读取:
FMResultSet * set = [[UIApp database] executeQuery:[customQueries selectAll], book];
我将字符串selectAll从SELECT语句更改为INSERT INTO语句,并将变量book传递给insert,但这似乎不起作用...
我错过了什么?为了能够写入我的sqlite db,我该怎么做?谢谢!
答案 0 :(得分:5)
要插入,您可以执行以下操作,其中db是对FMDatabase的引用:
[db executeUpdate:@"insert into theTable (field1, field2) values(?, ?)",
theField1, theField2, nil];
确保参数列表末尾有一个nil(查询中的2个问号表示两个参数和一个nil),并确保使用NS类型作为参数。如果你尝试使用int作为参数,它会崩溃,你需要使用NSNumber。
答案 1 :(得分: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];