我在我的简单iOS应用程序中使用sqlite。问题是我无法从查询中获得结果。我将跳过负责打开数据库的代码。它有效。
NSString *query = @"SELECT * FROM tickets LIMIT 0,1";
if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK)
{
NSString *strResult = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSLog(@"%@", strResult);
sqlite3_finalize(statement);
}
此处应用程序崩溃并显示一条消息:
NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString'
我100%确定查询
SELECT * FROM tickets LIMIT 0,1
返回非NULL的结果。我用sqlite客户端测试了上面的查询,它运行正常。
这里有什么问题?
答案 0 :(得分:2)
您没有评估自己的陈述。你应该使用:
int sqlite3_step(sqlite3_stmt*);
在sqlite3_prepare_v2
之后。