ホームページ  >  記事  >  バックエンド開発  >  mysql データベースをバックアップするための PHP コード (1 つのテーブル、1 つのファイル)_PHP チュートリアル

mysql データベースをバックアップするための PHP コード (1 つのテーブル、1 つのファイル)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:36:59848ブラウズ

コードをコピーします コードは次のとおりです:

$cfg_dbhost ='localhost';//mysqlホスト
$cfg_dbname ='sq_test';//データベース名
$cfg_dbuser =' root';/ /データベースユーザー名
$cfg_dbpwd ='jb51.net';//データベースユーザーパスワード
$cfg_db_ language ='utf8';//データベースエンコーディング

class dbmysql{
public static $dbhost = 'localhost';
パブリック静的$ dbname;
パブリック静的$dbpass = 'utf8';
パブリック静的$DB = 0;関数 __construct()
{
self::$dbhost = $GLOBALS['cfg_dbhost'];
self::$dbname = $GLOBALS['cfg_dbname']
self::$dbuser = $GLOBALS['cfg_dbuser']; ;
self: :$dbpass = $GLOBALS['cfg_dbpwd'];
self::connect()
}
public 関数 connect(); ::$DB =mysql_connect(self::$dbhost,self::$dbuser,self::$dbpass);
if(!self::$DB){
self::sqlError('サーバーに接続できません!'.self::mysqlerror );exit("サーバーに接続できません!");;
}
if(!mysql_select_db(self::$dbname)){
self::sqlError('サーバーに接続できませんデータベース ('.self::$dbname.') !'.self::mysqlerror);exit("データベースに接続できません!");
}
mysql_query("SET NAMES '".self::$charset) ."'、character_set_client=binary、sql_mode='';"、self::$DB);
}

プライベート関数 mysqlerror(){
return mysql_error();

パブリック関数 getTablesName(){
$ res = mysql_query('SHOW TABLES FROM '.self::$dbname ,self::$DB);
$tables=array();
while ($row=mysql_fetch_row($res))$tables[]=$row [0];
mysql_free_result($res);
$tables を返す
}
$res=mysql_query('DESCRIBE '.$table,self::$DB); =array();
while($row=mysql_fetch_row($res ))$tables[]=$row[0];
return $tables($sql); ){
$res=mysql_query($sql,self::$ DB);
$r=mysql_fetch_array($res);
$r を返す

パブリック関数 fetch_assoc($sql) ){
$q3=mysql_query($sql,self::$ DB); $ra=array();
while($data=mysql_fetch_assoc($q3)){
$ra[]=$data; mysql_free_result($q3);
return $ra;
}
private function sqlError($message='',$info ='',$sql=''){//エラー メッセージをファイルに保存します
echo "{"。 $message."
DATE: ".date ('Y-n-j H:i:s')."
ERROR: ".$info."
SQL: " .$sql."
}
";
}
public function close(){
self::$DB =null;
}
public function __destruct()
{
self ::close();
}
}

/*- --class end*/

function makedir($dirpath){
if(!$dirpath) return 0;
$dirpath=str_replace("\", "/",$mdir="";
foreach(explode("/",$dirpath) as $val){
$mdir.=$val."/"; ".."||$val==".")続行 ;
if(!is_dir($mdir)&&!file_exists($mdir)){
if(!@mkdir($mdir,0755)){
終了("ディレクトリ [".$mdir."] の作成に失敗しました。" );
}
}
}
return true;

function delDirAndFile($dirName){
if($handle=opendir($dirName) ){
while(false!==($item = readdir($ handle))){
if($item !="."&&$item!=".."){
if(is_dir( "$dirName /$item")){
delDirAndFile( "$dirName/$item ");
}else{ unlink("$dirName/$item"); }
}
}
closedir( $handle );
if( rmdir ( $dirName ) ) echo "ディレクトリが正常に削除されました: $dirName
n"
}
}

function filein($filename="databak/",$table='',$mysql='') {
$fp = fopen($filename.'/'.$table .'.sql','w');
fclose($fp); "Content-Type:text/html;charset=utf-8") ;

$db=new dbmysql();

$table=$db->getTablesName(); .date("Ymd");
$url=getcwd();
$handle = opendir($url); {
if ($file!="."&&$file!= ".."&&is_dir($url."/".$file)) {
if(date("Ymd")-$file>5){ delDirAndFile($url."/".$file);};
}
}

makedir($filename);
foreach($table as $t){
$s1=$db->fetch_array("show create table `$t`");
$mysql="/* Time:".date("Y-m-d H:i:s")." */rnDROP TABLE IF EXISTS `$t`;rn".$s1[ 'テーブルの作成'].";rnrn";
$a1=$ db->fetch_assoc("select * from `$t`");
foreach ($a1 as $data){
$vals=array_values($データ);
$vals=array_map('addslashes',$vals);
$vals="'".$vals."'"; mysql.="`$t` 値に挿入 ($vals); rn";
$mysql.="rn";
filein($filename,$t,$mysql);バックアップは成功しました、バックアップ ファイルが生成されました".getcwd()."/". $filename."/
プログラムは 5 日前のバックアップを自動的にクリーンアップします";
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/322039.html技術記事次のようにコードをコピーします: ?php $cfg_dbhost ='localhost';//mysql ホスト $cfg_dbname ='sq_test';//データベース名 $cfg_dbuser ='root';//データベース ユーザー名 $cfg_dbpwd ='jb51.net' ; //データベース...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。