在MySQL中存储XML的最佳方式

时间:2017-08-16 17:30:15

标签: php mysql xml blob

我正在获取XML API响应,解析我需要的数据,但希望在MySQL中存储完整的XML响应,以便以后添加数据。

我最初将XML存储在BLOB中,但有时在值中发现特殊字符会破坏INSERT。

因此,我首先将带有htmlentities的XML转换为BLOB,以保持原始API响应数据的完整性。这是一个很好的方法吗,还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

正确转义,任何数据都可以INSERTedBLOBhtmlentities 的方式。对于mysqli API,请使用mysqli :: real_escape_string。对于PDO使用绑定。

如果您在Windows上运行,请务必以二进制模式获取数据,否则CR / LF在读取过程中可能会“固定”。

理论上XML应为UTF-8,因此只需插入TEXT CHARACTER SET utf8mb4就可以代替BLOB

如果所有其他方法都失败了,请考虑将(在客户端中)blob转换为Base64。这将是4/3更大。