0
我無法得到這個代碼通過iOS的實際數據插入到我的SQLite數據庫
不工作:SQLite的插入iOS中
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)); }
我得到! 「DONE」,但數據庫仍然是空的。
編輯#2:
我本來試圖修改數據庫,因爲它是存儲在應用程序包。一個錯誤,對吧?所以我已經安裝了一個腳本,將數據庫複製到庫目錄並使用該副本。但腳本仍然不會將記錄插入到數據庫中。我在這裏錯過了什麼?