下面小編就為大家帶來一個使用php自動備份資料庫表的實作方法。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧
1、前言
mysql資料庫的備份方式有很多;
例如:
1、使用mysqldump函數
#mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
dbname參數表示資料庫的名稱
#table1和table2參數表示需要備份的表格的名稱,為空白則整個資料庫備份;
BackupName.sql參數表設計備份文件的名稱,檔名前面可以加上一個絕對路徑。通常將資料庫被分成一個後綴名為sql的檔案;
基本上使用:
2、管理工具
備份資料庫的方法很多,上面兩種比較常見
而本次主要講解如何透過php函數來自動備份資料庫
2、相關函數介紹
#2.2、array_keys
2.3、array_values
2.4、implode
#2.5、substr
#2.6、fwrite
3、實作想法
4、程式碼構成
/** * [copyDb description] 备份数据库 * @param [type] $dbname [description] 数据库名 * @param [type] $fileName [description] 存储的文件名 * @return [type] [description] */ public function copyDb($dbname, $fileName){ $myfile = fopen($fileName, "w") or die("Unable to open file!");//打开存储文件 $this->link->query("use {$dbname}");//切换数据库 $this->changeDb($dbname); $tables = $this->link->query('show tables');//获取当期数据库所有表名称 while($re = $tables->fetch(PDO::FETCH_ASSOC)){ //var_dump($re);//查看数组构成 $tableName = $re['Tables_in_'.$dbname];//构成特定的下标 $sql = "show create table {$tableName};"; $tableSql = $this->link->query($sql); fwrite($myfile, "DROP TABLE IF EXISTS `{$tableName}`;\r\n");//加入默认删除表的遇见 //下面备份表结构,这个循环之执行一次 while($re = $tableSql->fetch(PDO::FETCH_ASSOC)){ // echo "<pre class="brush:php;toolbar:false">"; // var_dump($re); // echo ""; echo "正在备份表{$re['Table']}结构
5、結語
備份資料庫的主要過程:
切換到對應的資料庫;
使用show create table tableName,取得表格結構,寫到文件中;
然後查詢所有的表數據,循環產生相對應sql語句,寫到文件中;
試運行產生的sql檔;
以上這篇使用php自動備份資料庫表的實作方法就是小編分享給大家的全部內容了,希望能給大家一個參考。
###########
以上是php自動備份資料庫表格的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!