Semasa proses pembangunan PHP, selalunya perlu untuk membuat sandaran pangkalan data Apabila membuat sandaran pangkalan data ke pelayan jauh atau cakera setempat, kami biasanya membuang pangkalan data ke dalam fail SQL. Fail SQL ialah fail teks yang mengandungi pernyataan pertanyaan SQL asal, yang boleh digunakan untuk memulihkan atau mengklon seluruh pangkalan data atau sebahagian daripadanya. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membuang pangkalan data ke dalam fail SQL.
Dalam PHP, untuk menyambung ke pangkalan data, anda mesti menggunakan mysqli
atau PDO
. Artikel ini mengambil mysqli
sebagai contoh. Pertama, kita perlu mewujudkan sambungan ke pangkalan data dan mendapatkan jadual dan maklumat lain dalam pangkalan data.
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }
Seterusnya, kita perlu menggunakan pernyataan pertanyaan SQL untuk mendapatkan semua nama jadual dalam pangkalan data. Kami akan menggunakan SHOW TABLES
untuk mendapatkan senarai jadual dalam pangkalan data. Pertanyaan mengembalikan set hasil bernama "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 个结果"; }
Sekarang kita telah memperoleh jadual dalam pangkalan data, kita boleh menggunakan perintah mysqldump
untuk membuangnya ke dalam SQL dokumen. mysqldump
ialah alat baris arahan untuk MySQL, yang boleh mengeluarkan pernyataan SQL untuk membuat sandaran atau membuang pangkalan data atau jadual MySQL.
Berikut ialah contoh kod yang menggunakan PHP untuk melaksanakan perintah mysqldump
untuk mengeksport keseluruhan pangkalan data ke fail SQL:
<?php $command = "mysqldump --user={$username} --password={$password} --host={$servername} {$dbname} > {$dbname}.sql"; exec($command);
Dalam kod di atas, kami menggunakan exec
fungsi untuk menukar mysqldump
Arahan dihantar ke baris arahan. Perintah ini membuang pangkalan data ke dalam fail bernama "databaseName.sql". Ambil perhatian bahawa, berbanding dengan input, output menggunakan simbol ">".
Jika anda hanya perlu membuang satu jadual dalam pangkalan data ke dalam fail SQL, anda boleh menggunakan kod berikut:
<?php $command = "mysqldump --user={$username} --password={$password} --host={$servername} {$dbname} {$tableName} > {$tableName}.sql"; exec($command);
Dalam kod di atas, anda hanya perlu membuang jadual Hanya hantar nama kepada arahan mysqldump
.
Selepas melengkapkan pembuangan data, sambungan yang dibuat dengan pangkalan data mesti ditutup. Sambungan boleh ditutup melalui fungsi mysqli
close
.
<?php $conn->close();
Melalui langkah di atas, kita boleh membuang keseluruhan pangkalan data atau jadual tertentu ke dalam fail SQL. Ini memudahkan untuk memindahkan pangkalan data dari satu pelayan ke pelayan yang lain, di samping menyediakan alat yang berguna apabila membuat sandaran dan memulihkan pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk membuang pangkalan data ke dalam fail SQL menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!