PHP の mysql データベースのバックアップは、多くの個人ウェブマスター Web サイトに備わっている機能です。もちろん、数 GB 以上のデータベースをバックアップしたい場合、php のバックアップ方法は少し難しく感じます。
PHP は、mysql データベースのソース コードをバックアップします。完全な PHP+Mysql プロジェクトでは、バックグラウンドで Mysql データベースをバックアップする機能が追加されます。この機能を使用すると、FTP を使用したり、mysql 管理を使用したりする必要がなくなります。 mysql データベースをダウンロードするツールは、この機能を実行したい PHP にとって非常に便利です。主なポイントは次の 3 つです。
まず、SQL ステートメントを通じて mysql データ テーブルを出力できるようにデータベースに接続する必要があります。次に、mysql データベースを保存するフォルダーの作成など、PHP のファイル操作関数を通じてデータベース操作を実行します。 3 番目に、mysql データベースを保存します。
この原理により、独自のバックアップ データベース関数を作成できます。以下は、上記の 3 つのポイントに基づいたソース コードです。それを独自の php クラスにカプセル化することもできます。 1 つの例から推論すると、phper がこれに基づいて mysql データベースのバックアップ関数に適したソース コードを設計できることを願っています
コードは次のとおりです
| コードをコピー
|
/**データベースをバックアップし、.sql ファイルを生成します
* @param $browseinfo String ブラウザのバージョン
* $browseinfo を返します
*/
関数 createsql(){
//日付を作成します
$timer1 = time();
$path = "my_sql/";
$content =gettables();
$filename = $path.$timer1.".sql";
//まずフォルダーが存在するかどうかを確認します
if(!file_exists($path)){
//このディレクトリが存在しない場合、0777 は最大の読み取りおよび書き込み権限を示します
If(mkdir($path,0777)){
//エコー「新しいディレクトリ」 ;
}
}
// ファイルが存在するかどうかを判断します
If(!file_exists($filename)){
// ファイルが存在しない場合はファイルを作成します
@fopen($filename,"w");
// ファイルが書き込み可能かどうかを判断します
if(is_writable($filename)){
// ファイルを追加モードで開きます。つまり、ファイル ストリームを「a」モードで開きます
If(!$handle = fopen($filename,"a")){
echo "ファイルを開けません";
exit();
}
if(!fwrite($handle,$content)){
echo "ファイルに書き込めません";
exit();
}
// ファイルストリームを閉じる
fclose($handle);
echo "ファイルを生成して最初のコンテンツを保存";
}その他{
echo "ファイル $filename は書き込み可能ではありません";
}
}その他{
if(is_writable($filename)){
// ファイルストリームを追加モードで開きます
If(!$handle = fopen($filename,"a")){
echo "ファイルを開けません";
exit();
}
fclose($handle);
}その他{
echo "ファイル $filename は書き込み可能ではありません";
}
}
}
/**
* データベース内のテーブル名を取得します
* return $str データベーステーブルの作成と値の挿入のための SQL ステートメントを生成するループ
*/
関数 gettables(){
$mysqli = new mysqli("localhost","root","","bbs");
$str = '';
If ($result = $mysqli->query("SHOW TABLES")) {
while($row = $result->fetch_row()){
$str.= data2sql($row[0])." ";
}
$mysqli->close();
$str; を返す
}
/**
* データベース内のテーブル構造と値を取得します
* return $tabledump はテーブル内の構造と値の SQL ステートメントを返します
*/
関数 data2sql($table){
$mysqli = new mysqli("localhost","root","","bbs");
/* 接続を確認します */
if (mysqli_connect_errno()) {
printf("接続に失敗しました: %sn", mysqli_connect_error());
exit();
}
$tabledump = "$table;n が存在する場合はテーブルを削除";
$result = $mysqli->query("SHOW CREATE TABLE $table");
$create = $result->fetch_row();
$tabledump .= $create[1].";nn";
$rows = $mysqli->query("SELECT * FROM $table");
$numfields = $rows->num_rows;
while ($row = $rows->fetch_row()){
$comma = "";
$tabledump .= "INSERT INTO $table VALUES(";
for($i = 0; $i
{
$tabledump .= $comma."'".mysql_escape_strin
g($row[$i])."'";
$comma = ",";
}
$tabledump .= ");n";
}
$tabledump .= "n";
return $tabledump;
}
?>
|
http://www.bkjia.com/PHPjc/632928.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/632928.html技術記事 PHP の mysql データベースのバックアップは、多くの個人ウェブマスター Web サイトに備わっている機能です。もちろん、数 GB 以上のデータベースをバックアップしたい場合、PHP のバックアップ方法は少し難しく感じます。 PHP バックアップ 私の...