如何用PHP实现数据的备份与恢复

   2024-09-30 3570
核心提示:在 PHP 中,可以使用 MySQLi 或 PDO 扩展来实现数据库的备份和恢复。下面是一个简单的示例,展示了如何使用 PHP 和 MySQLi 实现

在 PHP 中,可以使用 MySQLi 或 PDO 扩展来实现数据库的备份和恢复。下面是一个简单的示例,展示了如何使用 PHP 和 MySQLi 实现这些功能:

数据库备份
<?php// 配置数据库信息$db_host = 'localhost';$db_user = 'username';$db_pass = 'password';$db_name = 'database_name';// 创建连接$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);// 检查连接if ($conn->connect_error) {    die("连接失败: " . $conn->connect_error);}// 设置字符集$conn->set_charset('utf8');// 获取所有表名$tables = array();$result = $conn->query("SHOW TABLES");while ($row = $result->fetch_array()) {    $tables[] = $row[0];}// 开始备份$backup_file = 'backup_' . date('YmdHis') . '.sql';$handle = fopen($backup_file, 'w+');foreach ($tables as $table) {    // 获取表结构    $result = $conn->query("SHOW CREATE TABLE `$table`");    $row = $result->fetch_assoc();    $create_table_sql = $row['Create Table'] . ";\n";    fwrite($handle, $create_table_sql);    // 获取表数据    $result = $conn->query("SELECT * FROM `$table`");    while ($row = $result->fetch_assoc()) {        $values = '';        foreach ($row as $value) {            $values .= "'" . addslashes($value) . "', ";        }        $values = substr($values, 0, -2);        $insert_sql = "INSERT INTO `$table` VALUES ($values);\n";        fwrite($handle, $insert_sql);    }}fclose($handle);echo "数据库备份成功,文件名:$backup_file";?>
数据库恢复
<?php// 配置数据库信息$db_host = 'localhost';$db_user = 'username';$db_pass = 'password';$db_name = 'database_name';// 创建连接$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);// 检查连接if ($conn->connect_error) {    die("连接失败: " . $conn->connect_error);}// 设置字符集$conn->set_charset('utf8');// 读取备份文件$backup_file = 'backup_20211001000000.sql'; // 请将此处替换为实际的备份文件名$content = file_get_contents($backup_file);$sql_list = explode(';', $content);// 开始恢复foreach ($sql_list as $sql) {    $sql = trim($sql);    if (!empty($sql)) {        $conn->query($sql);    }}echo "数据库恢复成功";?>

注意:请确保备份文件和恢复脚本位于服务器上的相同目录中,并根据实际情况修改文件名和数据库信息。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号