使用 fmdb 无法更新 blob 类型数据

Posted

技术标签:

【中文标题】使用 fmdb 无法更新 blob 类型数据【英文标题】:using fmdb can't update blob type data 【发布时间】:2015-05-22 09:43:18 【问题描述】:

当我查询或删除或插入数据库时​​,FMDB 工作正常,但当我尝试更新时,它返回 YES,但实际上并没有改变任何东西。

这是更新数据的代码:(这不起作用)

 [_db executeUpdateWithFormat:@"UPDATE t_jewel_template SET data = %@ WHERE idstr = %@;", bookData, bookId];

这是插入数据的代码:(工作正常)

 [_db executeUpdateWithFormat:@"INSERT INTO t_jewel_template(data, idstr) VALUES(data, idstr);", bookData, bookId];

这是删除数据的代码:(工作正常)

 [_db executeUpdateWithFormat:@"DELETE FROM t_jewel_template WHERE idstr = %@;", bookId];

该表的架构是:

CREATE TABLE IF NOT EXISTS t_jewel_template (id integer PRIMARY KEY, data blob NOT NULL, idstr text NOT NULL);

【问题讨论】:

【参考方案1】:

不要使用 executeUpdateWithFormat:(事实上,它将在 FMDB 3.0 中消失)。

改为使用 executeUpdate: 和 ?占位符。

【讨论】:

以上是关于使用 fmdb 无法更新 blob 类型数据的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 swift 3 在 FMDB 中执行更新

FMDB - 无法从 Cocoa 修改数据库

SQLite 或 FMDB 无法找到包含某些字符的行

FMDB:提前放数据

FMDB:错误 14,无法打开数据库文件

更新 blob 后,Android sqlite 无法读取