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

WBOY
リリース: 2016-07-13 10:46:49
オリジナル
891 人が閲覧しました

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;
}
?>

www.bkjia.com本当http://www.bkjia.com/PHPjc/632928.html技術記事 PHP の mysql データベースのバックアップは、多くの個人ウェブマスター Web サイトに備わっている機能です。もちろん、数 GB 以上のデータベースをバックアップしたい場合、PHP のバックアップ方法は少し難しく感じます。 PHP バックアップ 私の...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート