0

好的,所以我知道 fmdb 完全过时了,核心数据就在它所在的位置,但现在,我只需要调整我正在开发的应用程序,它使用 fmdb 从资源文件夹中的 sqlite db 读取。

我需要能够写入我的数据库。执行查询的最佳方式是什么?我尝试做与从数据库读取相同的事情:

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

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

我错过了什么?我需要做什么才能写入我的 sqlite 数据库?谢谢!

4

2 回答 2

5

要插入你会做这样的事情,其中​​ db 是对你的 FMDatabase 的引用:

[db executeUpdate:@"insert into theTable (field1, field2) values(?, ?)", 
    theField1, theField2, nil];

确保参数列表末尾有一个 nil(查询中的 2 个问号表示两个参数和一个 nil),并确保您使用 NS 类型作为参数。如果您尝试使用 int 作为参数,它会崩溃,您需要使用 NSNumber 来代替。

于 2010-11-21T15:20:31.957 回答
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];
于 2010-11-21T13:03:44.550 回答