具有多个条件的sqlite查询给出错误:库例程被称为不按顺序

时间:2013-08-30 08:57:24

标签: ios sqlite

我正在创建一个应用程序并使用sqlite 3来存储数据。 这是我正在执行的用于获取数据的代码

sqlite3_stmt *statement; 
NSString *querySQL = [NSString stringWithFormat: @"SELECT ID, HolderName, AccountNumber, BankName, Location FROM Accounts WHERE UserID='%@'",userID];

if(![name isEqualToString:@""]) 
{
    querySQL = [NSString stringWithFormat: @"SELECT ID, HolderName, AccountNumber, BankName, Location FROM Accounts WHERE UserID='%@' and HolderName='%@'",userID, name];
}
const char *query_stmt = [querySQL UTF8String]; 

if (sqlite3_prepare_v2(db, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
    while(sqlite3_step(statement) == SQLITE_ROW)
    {
        ....
    }
}

这里发生了什么,如果name为空,那么查询(只有where子句中的一个条件)正常运行并获取正确的数据但是它给出错误:如果name不为空且查询包含两个条件,则库例程被称为不按顺序在where子句中。 我不确定它有什么问题,我已经搜索了很多但发现查询在多个条件下运行完美。 请建议我该怎么做。

0 个答案:

没有答案