PHP 開発プロセス中、データベースのバックアップが必要になることがよくありますが、データベースをリモート サーバーまたはローカル ディスクにバックアップするときは、通常、データベースを SQL ファイルにダンプします。 SQL ファイルは、元の SQL クエリ ステートメントを含むテキスト ファイルであり、データベース全体またはデータベースの一部を復元または複製するために使用できます。この記事では、PHP を使用してデータベースを SQL ファイルにダンプする方法を紹介します。
PHP でデータベースに接続するには、mysqli
または PDO
を使用する必要があります。この記事では、mysqli
を例として取り上げます。まず、データベースへの接続を確立し、データベース内のテーブルやその他の情報を取得する必要があります。
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }
次に、SQL クエリ ステートメントを使用して、データベース内のすべてのテーブル名を取得する必要があります。 SHOW TABLES
を使用して、データベース内のテーブルのリストを取得します。クエリは、「Tables_in_databaseName」という名前の結果セットを返します。
<?php $sql = "SHOW TABLES"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出每个表的名称 while($row = $result->fetch_assoc()) { echo $row["Tables_in_myDB"]. "<br>"; } } else { echo "0 个结果"; }
データベース内のテーブルを取得したので、mysqldump
コマンドを使用してテーブルをダンプできます。 SQL ファイル。 mysqldump
は、MySQL データベースまたはテーブルをバックアップまたはダンプする SQL ステートメントを出力できる MySQL 用のコマンド ライン ツールです。
これは、PHP を使用して mysqldump
コマンドを実行し、データベース全体を SQL ファイルにエクスポートするサンプル コードです:
<?php $command = "mysqldump --user={$username} --password={$password} --host={$servername} {$dbname} > {$dbname}.sql"; exec($command);
上記のコードでは、 # を使用します。 ##exec 関数は、
mysqldump コマンドをコマンド ラインに渡します。このコマンドは、データベースを「databaseName.sql」という名前のファイルにダンプします。入力とは対照的に、出力では「>」記号が使用されることに注意してください。
<?php $command = "mysqldump --user={$username} --password={$password} --host={$servername} {$dbname} {$tableName} > {$tableName}.sql"; exec($command);上記のコードでは、ダンプするテーブルの名前のみが必要です。それをコマンド
mysqldump に渡すだけです。
mysqli の
close 関数を通じて閉じることができます。
<?php $conn->close();結論上記の手順により、データベース全体または特定のテーブルを SQL ファイルにダンプできます。これにより、データベースをあるサーバーから別のサーバーに簡単に移行できると同時に、データベースのバックアップと復元の際に便利なツールが提供されます。
以上がPHPを使用してデータベースをSQLファイルにダンプする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。