我想更新在SQL數據庫中的東西,但...錯誤每它給了我一個錯誤的時間SQL UPDATE語句
這是我的代碼:
// UPDATE SQL
- (void)sqlId:(int)sqlId text:(NSString *)text time:(NSString *)time preis:(NSString *)preis
{
[self openDb];
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
NSString *insertSQL = [NSString stringWithFormat:
@"UPDATE `webdesign` SET data='%@', time='%d', preis='%@' WHERE id='%d')",
text, [time intValue], preis, sqlId];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(database, insert_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE) {
NSLog(@"updated");
} else {
NSLog(@"Error");
}
sqlite3_finalize(statement);
}
[self closeDb];
}
控制檯說:
2013-08-31 12:07:21.366 Webdesign[6519:a0b] database opened
2013-08-31 12:07:21.367 Webdesign[6519:a0b] Error
2013-08-31 12:07:21.367 Webdesign[6519:a0b] database closed
也許這是一個簡單的問題,但我找不到它。
你忘了創建 'sqlite3_stmt *語句= NULL;' – iPatel
THX,但沒有改變 – Loko
檢查sqlite3_prepare_v2'的'的返回值。當任何函數失敗時,調用[sqlite3_errmsg](http://www.sqlite.org/c3ref/errcode.html)。 –