要使用PHP備份MySQL數(shù)據(jù)庫(kù),您可以按照以下步驟操作:
創(chuàng)建一個(gè)PHP腳本文件,如backup_database.php
。
在腳本中引入必要的文件,包括config.php
(數(shù)據(jù)庫(kù)配置信息)和db.php
(數(shù)據(jù)庫(kù)連接信息)。
在config.php
文件中,設(shè)置數(shù)據(jù)庫(kù)的主機(jī)名、用戶(hù)名、密碼和數(shù)據(jù)庫(kù)名。
在db.php
文件中,編寫(xiě)一個(gè)函數(shù)來(lái)連接到數(shù)據(jù)庫(kù)并執(zhí)行備份操作。
在backup_database.php
文件中,編寫(xiě)一個(gè)函數(shù)來(lái)調(diào)用db.php
中的備份函數(shù),并將備份文件保存到服務(wù)器上的指定位置。
在腳本中添加一個(gè)HTML表單,允許用戶(hù)選擇備份時(shí)間和文件名。
處理表單提交,調(diào)用備份函數(shù),并在完成后顯示下載鏈接或消息。
以下是一個(gè)簡(jiǎn)單的示例代碼:
config.php
<?php
$db_host = 'localhost';
$db_user = 'username';
$db_pass = 'password';
$db_name = 'database_name';
?>
db.php
<?php
require_once 'config.php';
function backup_database() {
$connection = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$connection) {
die('Error: ' . mysqli_connect_error());
}
$backup_file = 'backup_' . date('Y-m-d_H-i-s') . '.sql';
$backup_query = "SELECT * INTO OUTFILE '" . $backup_file . "' FROM " . $db_name;
if (mysqli_query($connection, $backup_query)) {
echo 'Backup successfully created: ' . $backup_file;
} else {
echo 'Error: ' . mysqli_error($connection);
}
mysqli_close($connection);
}
?>
backup_database.php
<?php
require_once 'config.php';
require_once 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$backup_file = $_POST['backup_file'];
backup_database();
echo '<a href="' . $backup_file . '">Download Backup</a>';
} else {
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="backup_file">Select backup file name:</label>
<input type="text" id="backup_file" name="backup_file">
<input type="submit" value="Backup Database">
</form>
<?php
}
?>
在這個(gè)示例中,用戶(hù)可以通過(guò)表單選擇備份文件的名稱(chēng),然后點(diǎn)擊“Backup Database”按鈕執(zhí)行備份操作。備份文件將被保存在服務(wù)器上的當(dāng)前目錄中,并顯示一個(gè)下載鏈接。