Writing SQL statement UPDATE query FMDB

我与影子孤独终老i 提交于 2019-12-08 09:12:30

问题


I am having trouble UPDATING my database using FMDB. Here's my SQL

BOOL success = [db executeUpdate:[NSString stringWithFormat:@"UPDATE Person SET gender= '%@' WHERE name= '%@'",gender,name]];

I wonder if i made a mistake by using the = sign to compare (If so how could i correct it). Or any other solution. Help?

EDIT :

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;

回答1:


You should probably use this format:

BOOL success = [db executeUpdate:@"UPDATE Person SET gender = ? WHERE name = ?",gender,name];

You're also using a commit without starting a transaction, so take that bit out as well.




回答2:


I used this:

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];



回答3:


try this:

BOOL success = [db executeUpdate:[NSString 
  stringWithFormat:@"UPDATE Person SET gender=? WHERE name LIKES ?",gender,name]];

In fmdb method [executeUpdate] use "?" instead of "%@"




回答4:


Try this:

BOOL success = [db executeUpdate:[NSString stringWithFormat:@"UPDATE Person SET gender= '%@' WHERE name LIKES '%@'",gender,name]];



回答5:


Please try this:

NSString *updateQuery = [NSString stringWithFormat:@"UPDATE YOUR_DATABASE_TABLE_NAME SET row_value = %@",@"fmdb"];
Bool updateSuccess = [FMDataBaseObject ExecuteUpdate:updateQuery];


来源:https://stackoverflow.com/questions/9940889/writing-sql-statement-update-query-fmdb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!