ホームページ >バックエンド開発 >PHPチュートリアル >現在のコードを変更して、mysql php コードをローカルにバックアップするのを手伝ってくれる人はいますか?

現在のコードを変更して、mysql php コードをローカルにバックアップするのを手伝ってくれる人はいますか?

WBOY
WBOYオリジナル
2016-06-13 13:18:59802ブラウズ

現在のコードの変更を手伝ってくれる専門家はいますか? mysql をバックアップするための PHP コードはローカルの場所にバックアップする必要があります
mysql データをバックアップするためにインターネット上で配布されている PHP コードを使用しました。記事のタイトルは次のとおりです。 mysql データベースのバックアップ用 (1 つのテーブル、1 つのファイル)。コードは下部に掲載されています

しかし、現在は仮想ホストのディレクトリにのみバックアップできます。今後は、ローカル コンピュータの D フォルダなどのローカル ディレクトリにのみバックアップする必要があります。ドライブ。 私は有料の仮想ホストを購入しており、長期的な費用を支払う余裕がないため、仮想ホストは何も操作しません。また、PHP の初級段階にあるため、少し複雑なコードを変更するつもりはありません。

専門家の皆様、ローカルにバックアップされていればコードを変更できるかどうかご確認ください。 または、同じ機能を変更せずにコードファイルを提供していただけます。よろしくお願いします。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
$cfg_dbhost ='127.0.0.1';//mysql ホスト
$cfg_dbname ='mydb';//データベース名
$cfg_dbuser ='root';//データベースユーザー名
$cfg_dbpwd ='root';//データベースユーザーのパスワード
$cfg_db_lang ='utf8';//データベースエンコーディング

クラスdbmysql{
パブリック静的 $dbhost = 'ローカルホスト';
パブリック静的 $dbname;
パブリック静的 $dbuser = 'root';
パブリック静的 $dbpass;
パブリック静的 $charset = 'utf8';
パブリック静的 $DB = null;
パブリック $クエリカウント = 0;

パブリック関数 __construct()
{
self::$dbhost = $GLOBALS['cfg_dbhost'];
self::$dbname = $GLOBALS['cfg_dbname'];
self::$dbuser = $GLOBALS['cfg_dbuser'];
self::$dbpass = $GLOBALS['cfg_dbpwd'];
self::$charset= $GLOBALS['cfg_db_lang'];
self::connect();
}
パブリック関数 connect(){
self::$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(){
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 を返します。
}
パブリック関数 getFields($table){
$res=mysql_query('DESCRIBE '.$table,self::$DB);
$tables=array();
while($row=mysql_fetch_row($res))$tables[]=$row[0];
mysql_free_result($res);
$tables を返します。
}

パブリック関数 fetch_array($sql){
$res=mysql_query($sql,self::$DB);
$r=mysql_fetch_array($res);
mysql_free_result($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);
$ra を返します。
}
private function sqlError($message='',$info ='',$sql=''){//エラー メッセージをファイルに保存
echo "{".$message."<br/>DATE: ".date('Y-n-j H:i:s')."<br/>ERROR: ".$info."<br/ >SQL: ".$sql."<br>}<br>";
}
パブリック関数 close(){
self::$DB =null;
}
パブリック関数 __destruct()
{
self::close();
}
}

/*---授業終了*/

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

関数 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<br>n";
}
}

function filein($filename="databak/",$table='',$mysql=''){
$fp = fopen($filename.'/'.$table.'.sql','w');
fputs($fp,$mysql);
fclose($fp);
}

header("Content-Type:text/html;charset=utf-8");

$db=新しいdbmysql();

$table=$db->getTablesName();

$filename="databak/".date("Ymd");
$url=getcwd()."/databak/";
$handle = opendir($url);
while(false!==($file = readdir($handle))){
if ($file!="."&&$file!=".."&&is_dir($url."/".$file)) {
if(date("Ymd")-$file>5){delDirAndFile($url."/".$file);};
}
}

makedir($ファイル名);
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=配列値($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="「$t」値に挿入 ($vals);rn";
}
$mysql.="rn";
ファイルイン($ファイル名,$t,$mysql);
}

echo "データのバックアップが成功しました。バックアップ ファイルが生成されました。".getcwd()."/".$filename."/<br>プログラムは 5 日前のバックアップを自動的にクリーンアップします";
?>

 <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:phpunitアセンブリ次の記事:phpunitアセンブリ