我正在获取XML API响应,解析我需要的数据,但希望在MySQL中存储完整的XML响应,以便以后添加数据。
我最初将XML存储在BLOB中,但有时在值中发现特殊字符会破坏INSERT。
因此,我首先将带有htmlentities的XML转换为BLOB,以保持原始API响应数据的完整性。这是一个很好的方法吗,还是有更好的方法?
答案 0 :(得分:0)
正确转义,任何数据都可以INSERTed
成BLOB
。 htmlentities
不的方式。对于mysqli
API,请使用mysqli :: real_escape_string。对于PDO使用绑定。
如果您在Windows上运行,请务必以二进制模式获取数据,否则CR / LF在读取过程中可能会“固定”。
理论上XML
应为UTF-8,因此只需插入TEXT CHARACTER SET utf8mb4
就可以代替BLOB
。
如果所有其他方法都失败了,请考虑将(在客户端中)blob转换为Base64。这将是4/3更大。