我需要从MySQL数据库中导出选定表格中的数据,然后将其导入到另一个结构略有不同的MySQL数据库中。 IOW,我需要修改导出和导入之间的数据(而不仅仅是字段名称)。
我尝试过使用json_encode和json_decode几乎可以正常工作,但是如果所有数据都不是纯粹的utf8,那么json_encode就会失效,而utf8_encode也无法解决这个问题。
我正在考虑使用CSV,序列化和在PHP中生成SQL。哪些选项会给我最可靠的转移?
答案 0 :(得分:0)
您可以使用PDO查询和创建一个对象数组,而不是可以在代码中直接修改。然后使用该数据导入另一个数据库。
更好的问题是为什么UTF-8不适合你。确保您使用的是最新版本的PHP。
另外,请确保使用mb_
前缀函数来维护UTF-8(或其他多字节)编码。
答案 1 :(得分:0)
您还可以在导出期间对数据进行整形,具体取决于您使用SELECT语句转储数据的方式以及重新排序列或有选择地省略某些数据或使用条件来更改数据。结果仍然是一组行和列..只要它们与目标的结构匹配,就可以盲目导入。有可能,你正在使用mysqldump或其他东西,这并不容易。根据所需的更改,您也可以在重新导入后使用SQL修改数据。
由于SQL是用于处理数据的,因此这可能是处理事情的最简单方法,而不是试图用PHP解析大量的东西,而不是它的转储格式。
答案 2 :(得分:0)
我的问题不是由于我认为的json_encode问题引起的。相反,问题是左连接错误。
所以答案是只要您的查询形成正确,所有列出的方法都是可靠的。