gpt4 book ai didi

ios - 如何通过 FMDB 将数据保存和检索到 sqlite

转载 作者:IT王子 更新时间:2023-10-29 06:23:08 28 4
gpt4 key购买 nike

如何将 NSData 保存到 sqlite 中,我正在使用 FMDB 包装器来保存数据。

下面是我目前试过的代码
用于保存

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model.expertArray];; 
NSString *query = [NSString stringWithFormat:@"insert into save_article values ('%@','%@','%@','%@','%@','%@')",
model.Id, model.title, model.earliestKnownDate, data, model.excerpt,model.image_url];

用于检索

while([results next]) {
NSData *data = [results dataForColumn:@"experts"];
NSMutableArray *photoArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}

我已经尝试了数据类型 blob 和文本,但到目前为止没有成功,有人可以指导我如何做吗?

最佳答案

下面是所有在使用 FMDB 将 NSData 插入到 Sqlite 时可能遇到相同问题的人的代码段。

在我的案例中,我想将 NSArray 存储在 Sqlite 中,所以我首先将 NSArray 转换为 NSData &然后将其存储在 Sqlite 中。

将 NSArray 转换为 NSData

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:YourNSarray];;

将 NSData 保存到 Sqlite

[database executeQuery:@"insert into save_article values (?,?,?,?,?,?)", model.Id, model.title, model.earliestKnownDate, data, model.excerpt,model.image_url];

注意:- 不要使用 stringWithFormat 构建查询[下面是您不应该使用的代码]:。感谢@rmaddy 和@hotlicks 指点我:)

NSString *query = [NSString stringWithFormat:@"insert into user values ('%@', %d)",
@"brandontreb", 25];
[database executeUpdate:query];

现在是最后一步,即将 NSData 检索回 NSArray

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:[database dataForColumn:@"yourcololumname"]];

希望这对有需要的人和初学者有帮助:)

关于ios - 如何通过 FMDB 将数据保存和检索到 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234237/

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