亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

php的數據庫備份代碼

標簽:
PHP

<?php

class backUp{

private    $mysql_link;//链接标识

private    $dbName;    //数据库名

private    $dataDir;     //数据所要存放的目录

private    $tableNames;//表名

public function __construct($mysql_link){

$this->mysql_link = $mysql_link;

}

public function backupTables($dbName,$dataDir,$tableNames){          //开始备份

global $pdo;

global $database;

$this->dbName  = $dbName;

$this->dataDir  = $dataDir;

$this->tableNames = $tableNames;

$tables=$this->delarray($this->tableNames);

$sqls='';

foreach($tables as $tablename){

$tablename =$tablename['Tables_in_'.$database];

if($tablename == ''){//表不存在时

continue;

}

//************************以下是形成SQL的前半部分**************

//如果存在表,就先删除

$sqls .= "\nDROP TABLE IF EXISTS $tablename;\n\n";

//读取表结构

try{

$rs = $pdo->query('SHOW CREATE TABLE'.$tablename); //创表语句

}catch(PDOException $e){

var_dump($e);

}

$row=$rs->fetch();

//获得表结构组成SQL

$sqls.=$row['Create Table'].";\n\n";

unset($rs);

unset($row);

//************************以下是形成SQL的后半部分**************

//查寻出表中的所有数据

$rs=$pdo->query("select * from ".$tablename);

$result=$rs->setFetchMode (PDO::FETCH_ASSOC);

$rows=$rs->fetchAll();

$count = $rs->rowCount();

echo '<br>'.$count.'<br>';

$i = 0;

//$sqls.="INSERT INTO $tablename VALUES ";

foreach ($rows as $row) {

//var_dump($row);

$douhao="";

$sqls.="INSERT INTO$tablename VALUES(";

foreach ($row as $ro) {

$ro=addslashes($ro);

$sqls.=$douhao.'('.'\''.$ro.'\''.")";

$douhao=",";

}

$sqls.=");\n";

}

//$sqls.=";\n";

}

$backfilepath=$this->dataDir.$database.date("Y-m-d",time()).'.sql';

//写入文件

$filehandle = fopen($backfilepath, "w");

fwrite($filehandle, $sqls);

fclose($filehandle);

return true;

}

public function delarray($array){   //处理传入进来的数组

global $pdo;

global $database;

$array_del = array('first'=>$array);         //echo '传进函数的'.$array_del['first'];

foreach($array_del as $tables){

if($tables == '*'){    //所有的表(获得表名时不能按常规方式来组成一个数组)

$newtables =$pdo->query('show tables from '.$database);

$tableList = array();

$tableList =$newtables->fetchAll();

}else{

$tableList=$array_del;

break;

}

}

return $tableList;

}

//end

}

global $pdo ;

global $database;

$database = 'test';

$dir='./';

$pdo = newPDO('mysql:host=localhost;dbname='.$database,'root','',

array(PDO::ATTR_PERSISTENT=> true,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

if (!$pdo) {

echo'connect_wrong';

}

$data = new backUp($pdo);

$success =$data->backupTables($database,$dir,'*');

if ($success) {

echo'backup_okay';

}

?>



作者:曾小乱
链接:https://www.jianshu.com/p/9ca991df05b0

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消