10

PHP を使用して SQL データベースをバックアップする方法を教えてください。

ANSI SQL に準拠した、ベンダーに依存しない方法はありますか?

そうでない場合は、データベース ベンダーごとにその方法をリストできますか?

4

4 に答える 4

6

すべてのデータベース システムには、その内容をダンプするためのプログラムが付属しています。

system() またはを使用して、PHP からそのプログラムを簡単に呼び出すことができますshell_exec()

たとえば、Ident 認証を有効にして PostgreSQL を使用していて、データベースを直接 SQL テキストとしてブラウザにダンプしたい場合は、次testのように簡単です。

<?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');
?>
コマンドライン引数としてパスワードを送信することは非常に安全ではないためです。

于 2008-11-02T14:09:29.433 に答える
1

私はphpmybackupproが大好きです

于 2008-11-02T14:23:44.990 に答える
0

「ANSISQLに準拠した」データベースのバックアップは可能であり、称賛に値しますが、それでも移植性の問題が発生します。最も明白なのは、MySQLのダンプ/復元形式はかなり高速ですが、主にSQLの非標準拡張機能を使用してこれを実現していることです。したがって、ダンプをPostGresqlに渡すことはできません。それは機能しません。実際、PostGresqlは大量のINSERTステートメントの処理も非常に遅いです。ネイティブダンプ形式は、大量のデータを一度に挿入するために最適化された独自のカスタムSQLステートメントを使用します。

于 2008-11-03T00:52:16.373 に答える
0

それはかなり複雑なプロセスです。phpmyadmin などを使用することをお勧めします。

于 2008-11-02T14:35:18.490 に答える