从PHP生成SQL中的MySQL数据转储

时间:2010-04-28 10:45:03

标签: php sql mysql

我正在编写一个PHP脚本,用于从我的数据库生成SQL转储以进行版本控制。它已经通过运行适当的SHOW CREATE ....查询来转储数据结构。现在我想转储数据本身,但我不确定最好的方法。我的要求是:

  • 我需要每行一条记录
  • 行必须按主键排序
  • 无论数据类型(整数,字符串,二进制数据......)
  • ,SQL都必须有效且准确
  • 数据未更改时转储应相同

我可以检测并运行mysqldump作为外部命令,但这会增加额外的系统要求,我需要解析输出以删除不需要的转储信息的页眉和页脚(例如服务器版本)或转储日期)。我希望尽可能简单地保存我的脚本,以便它可以保存在一个独立的文件中。

我的替代方案是什么?

3 个答案:

答案 0 :(得分:1)

我认为mysqldump输出解析仍然是最简单的。我认为你必须排除的元数据确实很少,因此删除它们应该只有几行代码。

您还可以查看以下mysqdump选项: - tab, - compact

答案 1 :(得分:0)

总是可以尝试使用system()函数。希望你在Linux:)

答案 2 :(得分:0)

“按主键从表名顺序中选择*” 您可以从information_schema数据库或“show tables”命令获取表名。也可以从“showname from tablename”获取主键 然后循环并创建插入语句字符串