sqlite3_bind_text
返回成功/错误代码,而不是任何查询的结果。这一步应该会回来
SQLITE_ROW
,因为您有一行结果数据(不管计数是0还是更多)。似乎有个错误,因为你在期待
SQLITE_DONE
当正确的值为
SQLITE\u行
sqlite3_column_int
执行步骤后。比如:
int bind_res = sqlite3_bind_text(selectStmt, 1, [isbn UTF8String], -1, SQLITE_TRANSIENT);
if (SQLITE_OK != bind_res)
{
// log error, return...
}
// One row of result data, so step should return SQLITE_ROW
if (SQLITE_ROW != sqlite3_step(selectStmt))
{
NSAssert1(0, @"Error while selecting. '%s'", sqlite3_errmsg(database));
// log error, return
}
int count = sqlite3_column_int(selectStmt, 0);