我想更新在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)。 –