使用fmdb写入sqlite db?

时间:2010-07-10 17:41:48

标签: iphone database sqlite insert fmdb

好的我知道fmdb已经过时了,核心数据就在它的位置,但是现在,我只需要调整一个我正在使用的应用程序,它使用fmdb从资源文件夹中的sqlite数据库中读取。

我需要能够写入我的数据库。执行查询的最佳方法是什么?我尝试过做同样的事情,从db中读取:

FMResultSet * set = [[UIApp database] executeQuery:[customQueries selectAll], book];

我将字符串selectAll从SELECT语句更改为INSERT INTO语句,并将变量book传递给insert,但这似乎不起作用...

我错过了什么?为了能够写入我的sqlite db,我该怎么做?谢谢!

2 个答案:

答案 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];