選擇單行時while循環進入內部我有一個問題sqlite
,當我從表選擇單行,然後檢查sqlite3_step(statement) == SQLITE_ROW
兩個值是不同的,裏面while statement
沒有得到。不是從源碼
這是代碼:
if (sqlite3_prepare_v2(db, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
//NSLog(@"working777.............%d",sqlite3_step(statement));
while (sqlite3_step(statement) == SQLITE_ROW)
{
NSLog(@"working888.............%d",SQLITE_ROW);
NSString *addressField = [[NSString alloc] initWithUTF8String: (const char *) sqlite3_column_text(statement, 0)];
NSString *phoneField = [[NSString alloc] initWithUTF8String:(const char *)sqlite3_column_text(statement, 1)];
NSLog(@"............statement...........addressField %@, phoneField %@",addressField,phoneField);
}
sqlite3_finalize(statement);
}
sqlite3_close(db);
}
您需要發佈查詢。只有當查詢有一個或多個結果時纔會輸入while循環。如果查詢不返回任何行,則不會輸入while循環。 – rmaddy
NSString * querySQL = [NSString stringWithFormat:@「SELECT * FROM Major_Events WHERE temple_id = \」%@ \「」,temp_id];這是我使用的查詢,表中有一行對應於temp_id – user1376474
字符串值應該是單引號,而不是雙引號。表格文本中的temple_id列還是數字?如果是文字,請使用引號。創建這樣的SQL語句也是一種糟糕的形式。你真的應該綁定變量而不是使用字符串格式。 – rmaddy