ホームページ > バックエンド開発 > PHPチュートリアル > php mysqlデータベースバックアッププログラム_PHPチュートリアル

php mysqlデータベースバックアッププログラム_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:05:06
オリジナル
1112 人が閲覧しました

php mysql 数据库备份程序 /* 提供一款实例的php mysql 数据库备份程序,很好方法的可以对你的数据库进行在线实时备份,这样可以保存数据库的安全,并且他是以.sql文件保存在bakdata目录还日期生成的数据库备份文件的。

php教程 mysql教程 数据库教程备份程序
/*
提供一款实例的php mysql 数据库备份程序,很好方法的可以对你的数据库进行在线实时备份,这样可以保存数据库的安全,并且他是以.sql文件保存在bakdata目录还日期生成的数据库备份文件的。
*/

?>







数据管理



esweb系统数据管理


/*--------------界面--------------*/if(!$_post['act']){/*----------------------*/
$msgs[]="服务器备份目录为$backup";
$msgs[]="对于较大的数据表,强烈建议使用分卷备份";
$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";
//show_msg($msgs);
?>

如果需要备份、还原或者优化 大量的数据 , 推荐使用"帝国备份王2010"

<フォーム名="myform" メソッド="post" action="sql_backup.php">
























/*----*/else{/*--------------メインプログラム---------------------- ------------------*/
if($_post['weizhi']=="localpc"&&$_post['fenjuan']=='yes')
{$msgs[]="サーバーへのバックアップを選択した場合のみ、ボリューム バックアップ機能を使用できます";
show_msg($msgs); ページエンド();}
if($_post['fenjuan']=="はい"&&!$_post['filesize'])
{$msgs[]="ボリューム バックアップ機能が選択されましたが、ボリューム ファイル サイズが入力されていませんでした";
show_msg($msgs); ページエンド();}
if($_post['weizhi']=="サーバー"&&!writeable($backup))
{$msgs[]="バックアップ ファイル ストレージ ディレクトリ '$backup' は書き込み可能ではありません。ディレクトリ属性を変更してください。";
show_msg($msgs); ページエンド();}

/*----------すべてのテーブルをバックアップします---------------*/if($_post['bfzl']=="quanbubiao"){/* - ---*/
/*----ボリュームに分割されていません*/if(!$_post['fenjuan']){/*---------------------- - -------*/
if(!$tables=$d->query("$mysqldb からテーブルのステータスを表示"))
{$msgs[]="データベース構造の読み取り中にエラーが発生しました"; $sql="";
while($d->nextrecord($tables))
{
$table=$d->f("名前");
$sql.=make_header($table);
$d->query("select * from $table");
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($table,$num_fields);}
}
$filename=date("ymd",time())."_all.sql";
if($_post['weizhi']=="localpc") down_file($sql,$filename);
elseif($_post['weizhi']=="サーバー")
{if(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル データのバックアップが完了し、バックアップ ファイル '$backup/$filename' が生成されました";
else $msgs[]="すべてのデータテーブルのバックアップに失敗しました";
show_msg($msgs);
ページエンド();
}
/*-----------------ロールを終了しないでください*/}/*---------------------- --- */
/*---------------ボリューム*/else{/*---------------------- - -*/
if(!$_post['filesize'])
{$msgs[]="バックアップ ファイルのボリューム サイズを入力してください"; if(!$tables=$d->query("$mysqldb からテーブルのステータスを表示"))
{$msgs[]="データベース構造の読み取り中にエラーが発生しました"; $sql=""; $p=1;
$filename=date("ymd",time())."_all";
while($d->nextrecord($tables))
{
$table=$d->f("名前");
$sql.=make_header($table);
$d->query("select * from $table");
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($table,$num_fields);
if(strlen($sql)>=$_post['ファイルサイズ']*1000){
$filename.=("_v".$p.".sql");
If(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル-ボリューム-".$p."-データのバックアップが完了しました。バックアップ ファイル '$backup/$filename'" が生成されました;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
$p++;
$filename=date("ymd",time())."_all";
$sql="";}
}
}
if($sql!=""){$ファイル名.=("_v".$p.".sql"); if(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル-ボリューム-".$p."-データのバックアップが完了しました。バックアップ ファイル '$backup/$filename'" が生成されました;}
show_msg($msgs);
/*----------巻終わり*/}/*--------------------- - -----------------*/
/*----------すべてのテーブルのバックアップの終了*/}/*---------------------------- ----- ---------------*/

/*----------単一テーブルをバックアップ-----*/elseif($_post['bfzl']=="danbiao"){/*---------- --*/
if(!$_post['テーブル名'])
{$msgs[]="バックアップするデータテーブルを選択してください";}
/*----------各巻に分割されていません*/if(!$_post['fenjuan']){/*-------- - ----------*/
$sql=make_header($_post['テーブル名']);
$d->query("select * from ".$_post['tablename']);
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($_post['テーブル名'],$num_fields);}
$filename=date("ymd",time())."_".$_post['tablename'].".sql";
if($_post['weizhi']=="localpc") down_file($sql,$filename);
elseif($_post['weizhi']=="サーバー")
{if(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
show_msg($msgs);
ページエンド();
}
/*----------------ロールを終了しないでください*/}/*--------------------- --- ----------*/
/*----------------ボリューム*/else{/*---------------------- - ---------------*/
if(!$_post['filesize'])
{$msgs[]="バックアップ ファイルのボリューム サイズを入力してください"; $sql=make_header($_post['テーブル名']); $filename=date("ymd",time())."_".$_post['テーブル名'];
$d->query("select * from ".$_post['tablename']);
$num_fields=$d->nf();
while ($d->nextrecord())
{
$sql.=make_record($_post['テーブル名'],$num_fields);
If(strlen($sql)>=$_post['ファイルサイズ']*1000){
$filename.=("_v".$p.".sql");
If(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."- Volume-".$p."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
$p++;
$filename=date("ymd",time())."_".$_post['テーブル名'];
$sql="";}
}
if($sql!=""){$ファイル名.=("_v".$p.".sql"); if(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."- Volume-".$p."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます。}
show_msg($msgs);
/*----------巻末*/}/*---------------------------- -- ------------------*/
/*----------バックアップ単一テーブルの終了*/}/*---------------------------- ---- ------------------*/

/*---*/}/*---------------メインプログラム終了---------------------- - ------------------*/

関数 write_file($sql,$filename)

{

$re=true;

グローバル $バックアップ;
if(!@$fp=fopen($backup."/".$filename,"w+")) {$re=false; echo "ターゲット ファイルを開けませんでした";}
if(!@fwrite($fp,$sql)) {$re=false; echo "ファイルの書き込みに失敗しました";}
if(!@fclose($fp)) {$re=false; echo "ターゲット ファイルを閉じることができませんでした";}
$re を返します;
}

関数 down_file($sql,$filename)
{

ob_end_clean();

header("コンテンツエンコーディング: なし");
header("content-type: ".(strpos($_server['http_user_agent'], 'msie') ? 'application/octetstream' : 'application/octet-stream'));

header("content-disposition: ".(strpos($_server['http_user_agent'], 'msie') ? 'inline; ' : 'attachment; ')."filename=".$filename);

header("content-length: ".strlen($sql));
header("プラグマ: キャッシュなし");

header("有効期限: 0");
エコー $sql;
$e=ob_get_contents();
ob_end_clean();
}

書き込み可能な関数($dir)
{

if(!is_dir($dir)) {
@mkdir($dir, 0777);

}


if(is_dir($dir))
{

if($fp = @fopen("$dir/test.test", 'w'))
{

@fclose($fp);

@unlink("$dir/test.test");
$書き込み可能 = 1;
}
他に{
$書き込み可能 = 0;
}

}

$writeable を返す;

}

関数 make_header($table)

{グローバル $d;

$sql="存在する場合はテーブルを削除 ".$table."n";

$d->query("show create table ".$table);
$d->nextrecord();
$tmp=preg_replace("/n/","",$d->f("テーブルの作成"));
$sql.=$tmp."n";
$sql を返します;
}

関数 make_record($table,$num_fields)
{グローバル $d;
$comma="";
$sql .= "「.$table.」に挿入します。values(";
for($i = 0; $i {$sql .= ($comma."'".mysql_escape_string($d->record[$i])."'"); $comma = ",";}
$sql .= ")n";
$sql を返します;
}

関数 show_msg($msgs)
{
$title="ヒント:";
echo " echo "

";
echo "

esWeb システム データのバックアップ
バックアップ方法を選択 すべてのデータをバックアップします
単一のテーブル データをバックアップします
ターゲットの場所を選択 サーバーにバックアップします
ローカルにバックアップ
ボリューム バックアップを使用
分割ボリューム バックアップk (バックアップを選択した場合のみ分割ボリュームを使用できます)サーバーへのバックアップ機能)
プログラムの説明 1. より大きなデータ テーブルの場合は、ボリューム バックアップを使用することを強くお勧めします。
2. ボリューム バックアップ機能は、サーバーへのバックアップを選択した場合にのみ使用できます。
="リセット" 値="リセット" クラス="ボタン" />
".$title."

    ";
    while (list($k,$v)=each($msgs))
    {
    echo "
  • ".$v."
  • ";
    }
    echo "
";
}

関数 pageend()
{
exit();
}
?>





クラスデータベース{

var $linkid;
var $sqlid;
var $record;

関数 db($host="",$username="",$password="",$database="")
{
if(!$this->linkid) @$this->linkid = mysql_connect($host, $username, $password) または die("连接服务器失败.");
@mysql_select_db($database,$this->linkid) または die("無法打开データベース库");
$this->リンクIDを返す;}

関数クエリ($sql)
{if($this->sqlid=mysql_query($sql,$this->linkid)) return $this->sqlid;
他に{
    $this->err_report($sql,mysql_error);
false を返します;}
}

関数nr($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_rows($sql_id);}

関数 nf($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_fields($sql_id);}

関数 nextrecord($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
if($this->record=mysql_fetch_array($sql_id)) return $this->record;
それ以外の場合は false を返します;
}

関数 f($name)
{
if($this->record[$name]) return $this->record[$name];
それ以外の場合は false を返します;
}

関数 close() {mysql_close($this->linkid);}

関数ロック($tblname,$op="write")
{if(mysql_query("ロック テーブル ".$tblname." ".$op)) true を返します。それ以外の場合は false を返します;}

機能ロック解除()
{if(mysql_query("テーブルのロック解除")) true を返します。それ以外の場合は false を返します;}

関数 ar() {
      return @mysql_affected_rows($this->linkid);
    }

関数 i_id() {
    mysql_insert_id() を返す;
}

関数 err_report($sql,$err)
{
echo "mysql查询错误
";
echo "查询语句:".$sql."
";
echo "错误情報:".$err;
}
/**************************************授業終了********** * *****************/


グローバル $mysqlhost、$mysqluser、$mysqlpwd、$mysqldb、$backup;
$mysqlhost = $mydbhost;          //ホスト名
$mysqluser = $mydbuser;          //ログイン名
$mysqlpwd = $mydbpw;             //パスワード
$mysqldb = $mydbname;            //データベースの名前

$d=新しいデータベース($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
$d->query("名前を設定 'utf8'");

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630798.html技術記事 php mysql データ库备份程序/*一款例を提供する php mysql データ库备份程序、優れた方法でオンラインで実行できるデータベース库を保存できる...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート