從非SQL背景的人,我創建了一個簡單的表格,名爲test,有3個字段:FMDB SQLite的插入失敗
NSString *testtable = @"create table if not exists test(testid integer primary key, userid integer, contentid text)";
if (![db executeUpdate:testtable]) {
NSLog(@"create test, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
當我插入一條記錄表中,我得到一個EXC_BAD_ACCESS錯誤:
if (![db executeUpdate:@"insert into test values(?,?,?)", NULL, 1, @"HELLO"]) {
NSLog(@"insert test, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
如果我將整列的'userid'類型更改爲文本,這將工作正常。我在控制檯上使用sqlite命令測試這個表,它工作得很好。 你們覺得怎麼樣?謝謝...
我嘗試另一種方式來處理這個問題:
if (![db executeUpdate:@"insert into test values(?,?,?)", NULL, [NSNumber numberWithInt:1], @"HELLO"]) {
NSLog(@"testint, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
然後它工作。我無法說出原因......也許fmdb只支持對象插入。
只要我們的帶有ErrorCodes的NSLog幫助我解決了我的問題... +1 – CampbellGolf