Ios SQL update语句出错
我想更新sql数据库中的某些内容,但每次它都给我一个错误Ios SQL update语句出错,ios,objective-c,sqlite,Ios,Objective C,Sqlite,我想更新sql数据库中的某些内容,但每次它都给我一个错误 @"UPDATE `webdesign` SET data='%@', time='%d', preis='%@' WHERE id='%d')" 这是我的代码: // UPDATE SQL - (void)sqlId:(int)sqlId text:(NSString *)text time:(NSString *)time preis:(NSString *)preis { [self openDb]; if (s
@"UPDATE `webdesign` SET data='%@', time='%d', preis='%@' WHERE id='%d')"
这是我的代码:
// 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数据库的表结构,就不可能为您提供100%正确的答案,但我怀疑这一行
UPDATE `webdesign` SET data='%@', time='%d', preis='%@' WHERE id='%d')
错误的。事实上,你把小数放在单引号之间,把表名放在单引号之间
我倾向于使用NSLog写出创建的语句,并将该语句复制/粘贴到我的sqlite3命令行工具(或我经常使用的Valentina Studio)中,以检查创建的语句是否正确。这节省了我很多时间
亲切问候,,
PB该死,我发现了错误
@"UPDATE `webdesign` SET data='%@', time='%d', preis='%@' WHERE id='%d')"
这个“)”是个错误D
总是这样一个小错误-.-您忘记创建
sqlite3\u stmt*语句=NULL代码>检查sqlite3\u prepare\u v2的返回值
。当任何函数失败时,调用。