如何查看SQLite中存储的完整BLOB内容(Debug Kit数据查询场景)
解决SQLite CLI查询Debug Kit BLOB内容截断问题
核心原因
SQLite CLI默认开启了列宽自动截断,且未指定类型转换时BLOB字段会默认输出为十六进制格式或被强制截断,导致无法看到完整的content内容。
解决方案1:调整CLI配置后查询
- 打开数据库交互终端:
sqlite3 debug_kit.sqlite - 依次执行以下配置命令,关闭输出限制:
- 关闭列宽自动截断:
.width 0 - 可选:调整输出模式为更易读的换行模式:
.mode line
- 执行查询时强制将BLOB转换为文本类型:
select length(content), cast(content as text) from requests join panels on panels.request_id = requests.id and panels.panel = 'SqlLog';
解决方案2:直接导出完整内容到本地文件
如果终端输出依然存在截断,直接将结果导出到文件查看更稳妥,执行以下命令即可:
sqlite3 debug_kit.sqlite << 'EOF' .width 0 .output debug_kit_sqllog.txt select length(content), cast(content as text) from panels where panel='SqlLog'; .output stdout EOF
执行完成后打开当前目录下的debug_kit_sqllog.txt即可查看所有完整的content内容。
补充说明
你看到的以s:11:"开头的内容不是JSON格式,是PHP序列化后的字符串,如果你需要转成JSON格式,可以用PHP反序列化后调用json_encode处理即可。
内容的提问来源于stack exchange,提问作者Lajos Arpad
相关产品推荐
相关产品推荐

