因此,我可以对第一个表使用以下语句毫无问题地创建数据库:
const char *sqlStatement = "CREATE TABLE IF NOT EXISTS LIBRARY_SEARCH (SEARCH_ID INTEGER PRIMARY KEY AUTOINCREMENT, SEARCH_TERM TEXT)";
但是当我去插入一行时它失败了。这就是我插入行的方式。
NSString *insertStatement = [NSString stringWithFormat:@"INSERT INTO LIBRARY_SEARCH(SEARCH_TERM) VALUES (\"%@\")", myQuery] ;
其中 myQuery 是一个 NSString,它保存应用程序中 searchBar.text 的值。它是一个属性,当然是合成的。
所以我称之为:
if ( sqlite3_exec(searchSessionDB, [insertStatement UTF8String], NULL, NULL, &insert_error) == SQLITE_OK)
失败了。谁能看出原因?
最佳答案
明白了。在我的打开数据库语句中犯了一个小错字。
对于以后看到这个的人来说,现在的开场白是这样的(而且效果很好!):
if(sqlite3_open(dbpath, &searchSessionDB) = SQLITE_OK){
感谢 Robert Ryan 推荐这个 NSLog:
NSLog(@"%s", sqlite3_errmsg(searchSessionDB));
感谢 Elpsk 和 H2CO3 提供包装器/应用程序包信息。
关于iOS SQLite : Insert statement fails, 看不到为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721071/