佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > PHP后臺備份MySQL數(shù)據(jù)庫的源碼實例

PHP后臺備份MySQL數(shù)據(jù)庫的源碼實例

熱門標簽:Mysql連接數(shù)設置 服務器配置 銀行業(yè)務 電子圍欄 Linux服務器 科大訊飛語音識別系統(tǒng) 團購網(wǎng)站 阿里云

PHP 備份 mysql 數(shù)據(jù)庫的源代碼,在完善的 PHP+Mysql 項目中,在后臺都會有備份 Mysql 數(shù)據(jù)庫的功能,有了這個功能,對于一些不便自己寫shell腳本備份的VPS來說,就不用使用 FTP 或者使用 mysql 的管理工具進行 mysql 數(shù)據(jù)庫備份下載,非常方便。

下面是一個php數(shù)據(jù)庫備份的源代碼,大家也可以根據(jù)自己的需求進行修改。

?php 
// 備份數(shù)據(jù)庫
$host = "localhost";
$user = "root"; //數(shù)據(jù)庫賬號
$password = ""; //數(shù)據(jù)庫密碼
$dbname = "mysql"; //數(shù)據(jù)庫名稱
// 這里的賬號、密碼、名稱都是從頁面?zhèn)鬟^來的
if (!mysql_connect($host, $user, $password)) // 連接mysql數(shù)據(jù)庫
{
 echo '數(shù)據(jù)庫連接失敗,請核對后再試';
  exit;
} 
if (!mysql_select_db($dbname)) // 是否存在該數(shù)據(jù)庫
{
 echo '不存在數(shù)據(jù)庫:' . $dbname . ',請核對后再試';
  exit;
} 
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
  $table = $t[0];
  $q2 = mysql_query("show create table `$table`");
  $sql = mysql_fetch_array($q2);
  $mysql .= $sql['Create Table'] . ";\r\n";
  $q3 = mysql_query("select * from `$table`");
  while ($data = mysql_fetch_assoc($q3))
  {
    $keys = array_keys($data);
    $keys = array_map('addslashes', $keys);
    $keys = join('`,`', $keys);
    $keys = "`" . $keys . "`";
    $vals = array_values($data);
    $vals = array_map('addslashes', $vals);
    $vals = join("','", $vals);
    $vals = "'" . $vals . "'";
    $mysql .= "insert into `$table`($keys) values($vals);\r\n";
  } 
} 
$filename = $dbname . date('Ymjgi') . ".sql"; //存放路徑,默認存放到項目最外層
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
echo "數(shù)據(jù)備份成功";
?>

PHP執(zhí)行Mysql數(shù)據(jù)庫的備份和還原

使用mysqldump命令備份

mysqldump命令將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個文本文件。表的結(jié)構(gòu)和表中的數(shù)據(jù)將存儲在生成的文本文件中。

mysqldump命令的工作原理很簡單。它先查出需要備份的表的結(jié)構(gòu),再在文本文件中生成一個CREATE語句。然后,將表中的所有記錄轉(zhuǎn)換成一條INSERT語句。然后通過這些語句,就能夠創(chuàng)建表并插入數(shù)據(jù)。

mysqldump基本語法:

mysqldump -u username -p password dbname table1 table2 ...-> BackupName.sql
  • username為數(shù)據(jù)庫用戶名;
  • password為數(shù)據(jù)庫密碼
  • dbname參數(shù)表示數(shù)據(jù)庫的名稱;
  • table1和table2參數(shù)表示需要備份的表的名稱,為空則整個數(shù)據(jù)庫備份;
  • BackupName.sql參數(shù)表設計備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將數(shù)據(jù)庫被分成一個后綴名為sql的文件;
$exec="D:/phpstudy/mysql/bin/mysqldump -u".$db_user." -p".$db_pwd." ".$db_name." > ".$name;
exec($exec);
//前面要設置mysql執(zhí)行文件的路徑。

注意:這里的-p后面的password不要有空格,否則可能只會生成空的sql文件,后面$name是生成文件路徑及名稱。

簡單的備份數(shù)據(jù)庫就完成了。

還原使用mysqldump命令備份的數(shù)據(jù)庫的語法

mysql -u root -p password dbname  backup.sql

參數(shù)跟備份時一樣,backup.sql是需要還原的數(shù)據(jù)庫文件,文件路徑為絕對路徑。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

您可能感興趣的文章:
  • Thinkphp 框架基礎之源碼獲取、環(huán)境要求與目錄結(jié)構(gòu)分析
  • php源碼的安裝方法和實例
  • php源碼的使用方法講解
  • PHP自動生成縮略圖函數(shù)的源碼示例
  • PHP json_encode中文亂碼解決方法
  • 基于php解決json_encode中文UNICODE轉(zhuǎn)碼問題
  • 淺析PHP中json_encode與json_decode的區(qū)別
  • php讓json_encode不自動轉(zhuǎn)義斜杠“/”的方法
  • 關于php unset對json_encode的影響詳解
  • PHP中讓json_encode不自動轉(zhuǎn)義斜杠“/”的方法
  • php json_encode與json_decode詳解及實例
  • php中json_encode不兼容JSON_UNESCAPED_UNICODE的解決方案
  • java解析php函數(shù)json_encode unicode 編碼問題
  • 源碼分析系列之json_encode()如何轉(zhuǎn)化一個對象

標簽:蚌埠 棗莊 衢州 江蘇 大理 衡水 廣元 萍鄉(xiāng)

巨人網(wǎng)絡通訊聲明:本文標題《PHP后臺備份MySQL數(shù)據(jù)庫的源碼實例》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    通山县| 依安县| 弥勒县| 香港 | 策勒县| 辽源市| 澳门| 凤台县| 延吉市| 青海省| 宁南县| 香河县| 三明市| 谷城县| 永和县| 绍兴市| 深圳市| 赫章县| 紫云| 密云县| 沁源县| 梅河口市| 喀喇| 赫章县| 社旗县| 文昌市| 龙海市| 鄂尔多斯市| 盐亭县| 宣城市| 于田县| 招远市| 称多县| 宜兴市| 德江县| 崇义县| 富顺县| 铜川市| 庆城县| 临洮县| 陕西省|