//数据库基本信息
private function _retrieve() {
$backUp = '';
$backUp .= '--' . "\n";
$backUp .= '-- MySQL database dump' . "\n";
$backUp .= '-- Created by DbBackUp class, Power By chujiu. ' . "\n";
$backUp .= '--' . "\n";
$backUp .= '-- 主机: ' . $this->host . "\n";
$backUp .= '-- 生成日期: ' . date ( 'Y' ) . ' 年 ' . date ( 'm' ) . ' 月 ' . date ( 'd' ) . ' 日 ' . date ( 'H:i' ) . "\n";
$backUp .= '-- MySQL版本: ' . mysql_get_server_info () . "\n";
$backUp .= '-- PHP 版本: ' . phpversion () . "\n";
$backUp .= "\n\n";
$backUp .= "SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';\n";
$backUp .= "SET time_zone = '+00:00';\n\n";
$backUp .= "/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n";
$backUp .= "/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n";
$backUp .= "/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n";
$backUp .= "/*!40101 SET NAMES utf8*/;\n\n";
$backUp .= "--\n-- Database: `{$this->dbName}`\n--\n\n-- --------------------------------------------------------\n\n";
return $backUp;
}
/**
* 插入单条记录
*
* @param string $row
*/
private function _insertSql($row, $table) {
// sql字段逗号分割
$insert = '';
$insert .= "INSERT INTO `" . $table . "` VALUES(";
foreach($row as $key=>$val) {
$insert .= "'".$val."',";
}
$insert = substr($insert, 0 ,-1);
$insert .= ");" . "\n";
return $insert;
}
/**
* 生成一个表的inser语句
* @param string $table
* @param string $subsection 分卷大小
*/
private function _insertSqlByTableForAll($path, $table, $subsection) {
$i = 0;
$insertSqlByTable = '';
$res = mysql_query("SELECT * FROM `{$table}`", $this->conn);
if(!$res) die('MySQL Error: ' . mysql_error());
while($rows = mysql_fetch_assoc($res)) {
$insertSqlByTable .= $this->_insertSql($rows, $table);
$size = strlen($insertSqlByTable);
if($size > $subsection*1024*1024) {
$fw = $this->writeFileByBackUpData($path.$table.$i.$this->tag.'.sql', $insertSqlByTable);
if($fw === false) $this->_showMsg('数据库表['.$table.'],卷 '.$i.' 写入文件失败,请稍后再试!!!',true);
$this->_showMsg('数据库表['.$table.'],卷 '.$i.' 备份成功!备份文件:[ '.$path.$table.$i.$this->tag.'.sql ]');
$insertSqlByTable = '';
$i+=1;
}
}
// insertSqlByTable大小不够分卷大小
if ($insertSqlByTable != "") {
$fw = $this->writeFileByBackUpData($path.$table.$this->tag.'.sql', $insertSqlByTable);
if($fw === false) $this->_showMsg('数据库表['.$table.']写入文件失败,请稍后再试!!!备份文件:[ '.$path.$table.$this->tag.'.sql ]',true);
$this->_showMsg('数据库表['.$table.'] 备份成功!备份文件:[ '.$path.$table.$this->tag.'.sql ]');
}
$this->_showMsg('数据库表['.$table.']全部备份成功!');
}