我使用UPDATING
无法FMDB
我的数据库。这是我的SQL
BOOL success = [db executeUpdate:[NSString stringWithFormat:@"UPDATE Person SET gender= '%@' WHERE name= '%@'",gender,name]];
我想知道我是否通过使用=
符号进行比较而犯了错误(如果是这样我怎么能纠正它)。或任何其他解决方案。帮助
编辑:
DB Error 7: out of memory
2012-03-30 16:10:03.341 den[5168:f803] Error calling sqlite3_step (1: SQL logic error or missing database) SQLITE_ERROR
2012-03-30 16:10:03.343 den[5168:f803] DB Query: COMMIT TRANSACTION;
答案 0 :(得分:8)
您应该使用以下格式:
BOOL success = [db executeUpdate:@"UPDATE Person SET gender = ? WHERE name = ?",gender,name];
你也在没有启动事务的情况下使用提交,所以也要把它拿出来。
答案 1 :(得分:3)
我用过这个:
FMDatabase * database = [self openDB:[DELEGATE getDatabasePath]];
NSString *query = @"";
query = [NSString stringWithFormat:@"UPDATE Person SET gender= '%@' WHERE name LIKES '%@'",gender,name];
[database executeUpdate:query];
[database commit];
[database close];
答案 2 :(得分:1)
试试这个:
BOOL success = [db executeUpdate:[NSString
stringWithFormat:@"UPDATE Person SET gender=? WHERE name LIKES ?",gender,name]];
在fmdb方法[executeUpdate]中使用“?”而不是“%@”
答案 3 :(得分:0)
试试这个:
BOOL success = [db executeUpdate:[NSString stringWithFormat:@"UPDATE Person SET gender= '%@' WHERE name LIKES '%@'",gender,name]];
答案 4 :(得分:0)
请试试这个:
NSString *updateQuery = [NSString stringWithFormat:@"UPDATE YOUR_DATABASE_TABLE_NAME SET row_value = %@",@"fmdb"];
Bool updateSuccess = [FMDataBaseObject ExecuteUpdate:updateQuery];