Übergeben Sie die Argumente immer an die SQL-Abfrage als Objekttyp, schauen Sie sich bitte an, wie Argumente an die SQL-Abfrage übergeben werden. Selbst wenn Sie eine Nummer sind vorbei, übergeben Sie es als
[NSNumber numberWithInt:someValue]
Versuchen Sie folgendes:
-(BOOL) updateScores
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"uniques.sqlite"];
FMDatabase* db = [FMDatabase databaseWithPath:writableDBPath];
BOOL success = NO;
if ([db open] != YES) {
NSLog(@"DB Error %d: %@", [db lastErrorCode], [db lastErrorMessage]);
return NO; //VERY IMPORTANT
}
[db beginTransaction];
success = [db executeUpdate:@"UPDATE scores SET answer = ? WHERE name like ?", @"1", @"jack"];
if (success) {
NSLog(@"OK");
[db commit];
[db close];
}else {
NSLog(@"FAIL");
}
return success;
}
, was es in der Konsole nicht gedruckt werden? OK - FAIL - Problem mit DB? –
Es sagt, OK, aber wenn ich ein Select * SQL in der Konsole eingeben, wurde es nicht aktualisiert. – Illep
Warum verwenden Sie * stringWithFormat * wenn Sie nicht wirklich irgendwelche Variablen hineinstellen? Versuchen Sie das Literal, wenn es nicht funktioniert, entfernen Sie die einfachen Anführungszeichen. – lawicko