首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP MySQL 資料庫備份類:匯出結構與資料

     編輯:PHP 綜合知識
<?php
function backupMySqlData($host, $user, $pwd, $db, $saveFile='') {
    set_time_limit(0); header("Content-Type:text/html;charset=utf-8");
    $link = mysql_connect($host,$user,$pwd) or die(mysql_error());
    mysql_select_db($db) or die(mysql_error());
    mysql_query('SET NAMES utf8');
    $file = ($saveFile?$saveFile:'MySQL_backup_').date('YmdHis').'.sql';
    $tables = [];
    $res = mysql_query("SHOW TABLES FROM $db");
    while($r=mysql_fetch_row($res)) $tables[]=$r[0];
    foreach($tables as $t) {
        $r = mysql_query("SHOW CREATE TABLE $t");
        $row = mysql_fetch_row($r);
        file_put_contents($file, "DROP TABLE IF EXISTS `$t`;\n".$row[1].";\n\n", FILE_APPEND);
    }
    foreach($tables as $t) {
        $res = mysql_query("SELECT * FROM $t");
        while($row = mysql_fetch_row($res)) {
            $vals = array_map(function($v){ return "'$v'"; }, $row);
            file_put_contents($file, "INSERT INTO `$t` VALUES (".implode(',',$vals).");\n", FILE_APPEND);
        }
    }
    echo "備份完成:$file";
}
backupMySqlData('localhost','root','123456','your_db');
?>

注意:範例使用已棄用 mysql_* 函式,現代專案請改用 mysqli 或 PDO 並採用預處理語句防注入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved