SQL 以外のバックグラウンドから来て、3 つのフィールドを持つ test という名前の単純なテーブルを作成します。
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 はオブジェクトの挿入しかサポートしていないのかもしれません。