我无法让这段代码通过 iOS 将数据实际插入我的 SQLite 数据库:
NSString* inssql = [NSString stringWithFormat:@"INSERT OR IGNORE INTO roomData VALUES ('%@', '%i', '%@', '%@', '%@', '%@'); UPDATE roomData SET roomNumber='%@', roomName='%@', roomDesc='%@', roomHash='%@' WHERE roomID = '%@'", [row objectAtIndex:0],property,[row objectAtIndex:1],[row objectAtIndex:2],[row objectAtIndex:3],[row objectAtIndex:4],[row objectAtIndex:1],[row objectAtIndex:2],[row objectAtIndex:3],[row objectAtIndex:4],[row objectAtIndex:0]];
sql = [inssql UTF8String];
if (sqlite3_prepare(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
NSLog(@"MESSAGE: Could not prepare this insert, %s", sqlite3_errmsg(db));
} else {
if (sqlite3_step(sqlStatement) == SQLITE_DONE)
{
NSLog(@"MESSAGE: Successful insert, %@, %d", [row objectAtIndex:0], sqlite3_step(sqlStatement));
} else {
NSLog(@"MESSAGE: Failed insert, %s", sqlite3_errmsg(db));
}
}
我得到“成功插入”,但数据库中没有数据。知道怎么了?这是我第一次使用 SQLite。
编辑#1:
我还尝试了以下语法:
sql = "INSERT INTO roomData VALUES (?)";
sqlite3_prepare(db, sql, -1, &sqlStatement, NULL);
sqlite3_bind_int(sqlStatement, 1, 2);
if(sqlite3_step(sqlStatement)) { NSLog(@"DONE!"); } else { NSLog(@"FAIL: %s",sqlite3_errmsg(db)); }
我得到“完成!”,但数据库仍然是空的。
编辑#2:
我最初试图修改数据库,因为它存储在应用程序包中。一个错误,对吧?所以我安装了一个脚本,将数据库复制到库目录并使用该副本。但脚本仍然不会将记录插入数据库。我在这里想念什么?