1、前言
mysql資料庫的備份方式有很多;
##1、前言
mysql資料庫的備份方式有很多;
#例如:
1、使用mysqldump函數
mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
#
dbname參數表示資料庫的名稱
table1和table2參數表示需要備份的資料表的名稱,為空白則整個資料庫備份;
BackupName.sql參數表設計備份檔案的名稱,檔案名稱前面可以加上一個絕對路徑。通常將資料庫分成一個後綴名為sql的檔案;
#
#基本上使用:2、管理工具備份資料庫的方法很多,上面兩種比較常見
而本次主要講解如何透過php函數自動備份資料庫
2、相關函數介紹
2.1 、fopen2.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']}结构
以上是如何實作PHP自動備份資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!