如何使用PHP备份SQL数据库?

时间:2008-11-02 13:41:56

标签: php sql backup

如何使用PHP备份SQL数据库。

是否有与供应商无关的方法来执行符合ANSI SQL的方法?

如果不是,您可以列出如何为每个数据库供应商执行此操作?

4 个答案:

答案 0 :(得分:6)

每个数据库系统都附带一些转储其内容的程序。

您可以使用system()从PHP调用该程序 或shell_exec()

例如,如果您将PostgreSQL与启用的Ident authentication一起使用,并希望将数据库test直接作为SQL文本转储到浏览器,那么它就像以下一样简单:

<?php
header('Content-type: text/plain');
system('pg_dump test');
?>

当使用MySQL并将数据库用户和密码存储到~/.my.cnf时,它也非常简单:

<?php
header('Content-type: text/plain');
system('mysqldump test');
?>

但是,不要这样做:

<?php
header('Content-type: text/plain');
system('mysqldump -utestuser -ptestpassword test');
?>
因为作为命令行参数传输密码是very insecure

答案 1 :(得分:1)

答案 2 :(得分:0)

这是一个非常复杂的过程。我建议你使用phpmyadmin或类似的。

答案 3 :(得分:0)

虽然备份数据库“符合ANSI SQL”是可能且令人钦佩的,但您仍会遇到可移植性问题。最明显的是,虽然MySQL的转储/恢复格式相当快,但它主要通过使用SQL的非标准扩展来实现这一点。所以你不能把转储交给PostGresql:它不会工作。实际上,PostGresql在处理大量INSERT语句时也很慢。它的本机转储格式使用它自己的自定义SQL语句,该语句被优化用于一次插入大量数据。