gpt4 book ai didi

ios - Sqlite 总是只返回 1 行

转载 作者:行者123 更新时间:2023-11-28 20:02:37 25 4
gpt4 key购买 nike

计数返回 3 ,因为我在列中有 3 行。但是当我尝试发布名称时,它只返回 1 行。

请看我的代码。

  sqlite3_stmt *statement;
const char *dbpath = [_databasePath UTF8String];
if (sqlite3_open(dbpath, &_chatDB) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat:
@"SELECT MESSAGE from CHATCOMPLETE"];
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(_chatDB,
query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
if (sqlite3_step(statement) == SQLITE_ROW)
{
NSString *name = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 0)];
NSLog(@"Name is %@",name);
}

}
else{
NSLog(@"Not found");
// return nil;
}
sqlite3_reset(statement);
}
}

最佳答案

将您的 if/else 更改为 while 以遍历所有行:

while (sqlite3_step(statement) == SQLITE_ROW) {
NSString *name = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 0)];
NSLog(@"Name is %@",name);
}

然后你可以处理所有的结果。

并且您应该将 sqlite3_reset 更改为 sqlite3_finalize。并且不要忘记关闭数据库。

关于ios - Sqlite 总是只返回 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com