php实现mysql备份
来源:互联网 发布:淘宝口红代购 编辑:程序博客网 时间:2024/06/05 06:30
<?phpclass dbBak { var $_mysql_link_id; var $_dataDir; var $_tableList; var $_TableBak; function DbBak($_mysql_link_id,$dataDir) { ( (!is_string($dataDir)) || strlen($dataDir)==0) && die('error_log:$datadir is not a string'); !is_dir($dataDir) && mkdir($dataDir); $this->_dataDir = $dataDir; $this->_mysql_link_id = $_mysql_link_id; } function backupDb($dbName,$tableName=null) { ( (!is_string($dbName)) || strlen($dbName)==0 ) && die('$dbName must be a string value');//step1:选择数据库: mysql_select_db($dbName);//step2:创建数据库备份目录 $dbDir = $this->_dataDir.DIRECTORY_SEPARATOR.$dbName; !is_dir($dbDir) && mkdir($dbDir);//step3:得到数据库所有表名 并开始备份表 $this->_TableBak = new TableBak($this->_mysql_link_id,$dbDir); if(is_null($tableName)){//backup all table in the db $back=$this->_backupAllTable($dbName); return $back; } if(is_string($tableName)){ (strlen($tableName)==0) && die('....'); $this->_backupOneTable($dbName,$tableName); return; } if (is_array($tableName)){ foreach ($tableName as $table){ ( (!is_string($table)) || strlen($table)==0 ) && die('....'); } $this->_backupSomeTalbe($dbName,$tableName); return; } } function restoreDb($dbName,$tableName=null){ ( (!is_string($dbName)) || strlen($dbName)==0 ) && die('$dbName must be a string value');//step1:检查是否存在数据库 并连接: @mysql_select_db($dbName) || die("the database <b>$dbName</b> dose not exists");//step2:检查是否存在数据库备份目录 $dbDir = $this->_dataDir.DIRECTORY_SEPARATOR.$dbName; !is_dir($dbDir) && die("$dbDir not exists");//step3:start restore $this->_TableBak = new TableBak($this->_mysql_link_id,$dbDir); if(is_null($tableName)){//backup all table in the db $back=$this->_restoreAllTable($dbName); return $back; } if(is_string($tableName)){ (strlen($tableName)==0) && die('....'); $this->_restoreOneTable($dbName,$tableName); return; } if (is_array($tableName)){ foreach ($tableName as $table){ ( (!is_string($table)) || strlen($table)==0 ) && die('....'); } $this->_restoreSomeTalbe($dbName,$tableName); return; } } function _getTableList($dbName) { $tableList = array(); $result=mysql_query("show tables from $dbName"); //$result=mysql_list_tables($dbName,$this->_mysql_link_id); for ($i = 0; $i < mysql_num_rows($result); $i++){ array_push($tableList,mysql_tablename($result, $i)); } mysql_free_result($result); return $tableList; } function _backupAllTable($dbName) { foreach ($this->_getTableList($dbName) as $tableName){ $back=$this->_TableBak->backupTable($tableName); } return $back; } function _backupOneTable($dbName,$tableName) { !in_array($tableName,$this->_getTableList($dbName)) && die("指定的表名<b>$tableName</b>在数据库中不存在"); $this->_TableBak->backupTable($tableName); } function _backupSomeTalbe($dbName,$TableNameList) { foreach ($TableNameList as $tableName){ !in_array($tableName,$this->_getTableList($dbName)) && die("指定的表名<b>$tableName</b>在数据库中不存在"); } foreach ($TableNameList as $tableName){ $this->_TableBak->backupTable($tableName); } } function _restoreAllTable($dbName) {//step1:检查是否存在所有数据表的备份文件 以及是否可写: foreach ($this->_getTableList($dbName) as $tableName){ $tableBakFile = $this->_dataDir.DIRECTORY_SEPARATOR . $dbName.DIRECTORY_SEPARATOR . $tableName.DIRECTORY_SEPARATOR . $tableName.'.sql'; !is_writeable ($tableBakFile) && die("$tableBakFile not exists or unwirteable"); }//step2:start restore foreach ($this->_getTableList($dbName) as $tableName){ $tableBakFile = $this->_dataDir.DIRECTORY_SEPARATOR . $dbName.DIRECTORY_SEPARATOR . $tableName.DIRECTORY_SEPARATOR . $tableName.'.sql'; $back=$this->_TableBak->restoreTable($tableName,$tableBakFile); } return $back; } function _restoreOneTable($dbName,$tableName) {//step1:检查是否存在数据表: !in_array($tableName,$this->_getTableList($dbName)) && die("指定的表名<b>$tableName</b>在数据库中不存在");//step2:检查是否存在数据表备份文件 以及是否可写: $tableBakFile = $this->_dataDir.DIRECTORY_SEPARATOR . $dbName.DIRECTORY_SEPARATOR . $tableName.DIRECTORY_SEPARATOR . $tableName.'.sql'; !is_writeable ($tableBakFile) && die("$tableBakFile not exists or unwirteable");//step3:start restore $this->_TableBak->restoreTable($tableName,$tableBakFile); } function _restoreSomeTalbe($dbName,$TableNameList) {//step1:检查是否存在数据表: foreach ($TableNameList as $tableName){ !in_array($tableName,$this->_getTableList($dbName)) && die("指定的表名<b>$tableName</b>在数据库中不存在"); }//step2:检查是否存在数据表备份文件 以及是否可写: foreach ($TableNameList as $tableName){ $tableBakFile = $this->_dataDir.DIRECTORY_SEPARATOR . $dbName.DIRECTORY_SEPARATOR . $tableName.DIRECTORY_SEPARATOR . $tableName.'.sql'; !is_writeable ($tableBakFile) && die("$tableBakFile not exists or unwirteable"); }//step3:start restore: foreach ($TableNameList as $tableName){ $tableBakFile = $this->_dataDir.DIRECTORY_SEPARATOR . $dbName.DIRECTORY_SEPARATOR . $tableName.DIRECTORY_SEPARATOR . $tableName.'.sql'; $this->_TableBak->restoreTable($tableName,$tableBakFile); } }}
0 0
- PHP实现MYSQL备份
- php实现mysql备份
- php实现mysql备份
- php实现备份mysql数据库
- php实现备份mysql数据库
- PHP实现MYSQL备份(转)
- php实现备份mysql数据库
- php备份备份mysql
- 用 PHP 实现 XML 备份 Mysql 数据库
- 用PHP实现XML备份Mysql数据库
- PHP 备份 Mysql 数据库的实现
- PHP备份MYSQL数据库
- PHP备份MySQL数据库
- php mysql数据库备份
- Win 2003利用PHP实现mysql数据库自动备份教程
- Linux下crontab+php实现Mysql数据库定时备份
- php实现数据库备份
- Mysql实现实时备份
- mongodb数据安装
- apache ftpserver的使用(包含ftplet)
- python基础教程共60课-第34课break
- Linux学习笔记(二十四、VI编辑器概述)
- UIViewController的生命周期
- php实现mysql备份
- 【Web】表单中使用post和get的区别
- 从原理剖析自动拆装箱
- sqoop2 去除单引号与自定义分隔符
- 香橙派 orangepi 配置WPA2 无线网络
- zhphp framework(二十一) file 文件类
- jbpm4.4生成18张数据库表
- php 算取两个时间的所有月份
- POJ3067 Japan