ホームページ >バックエンド開発 >PHPチュートリアル >MySQL データベースを .sql ファイル インスタンスとしてエクスポートする PHP 実装 (PHPMyadmin エクスポート関数の模倣)_PHP チュートリアル
PHP コードを使用してデータベース バックアップを実装すると、Web サイト管理が非常に便利になり、バックグラウンド操作を直接開始してデータベース バックアップを完了できます。
主要テクノロジー:
1. まず、関数 mysql_list_tables() を使用してデータベース内のテーブルを取得する必要があります。その後、取得したすべてのテーブル名を配列に保存できます。
2. show create table テーブル名でテーブル構造を取得できます。
3. テーブル名から * を選択してすべてのレコードを取り出し、ループを使用してそれらを insert into... ステートメントに結合します。
実装コード:
//Inデータベース どのようなテーブルがあるのか
$tables = mysql_list_tables($cfg_dbname);
//これらのテーブルを配列に記録します
$tabList = array();
while($row = mysql_fetch_row($tables)){
$tabList[] = $row[0];
}
echo "実行中です。しばらくお待ちください...
";
$info = "-- -------------- --------------rn";
$info .= "-- Date:".date("Y-m-d H:i:s",time())."rn";
$info .= "-- このプログラムはテストと学習のみに使用され、大量のデータの処理には適していません";
$info .= "-- ---------------- - -----------rnrn";
file_put_contents($to_file_name,$info,FILE_APPEND);
//各テーブルのテーブル構造をファイルにエクスポートします
foreach($tabList as $val){
$sql = "show create table ".$val;
$res = mysql_query($sql,$link); $row = mysql_fetch_array($res);
$info = "----------------------------rn";
$info 。 = "-- `".$val."`rn";
$info のテーブル構造 .= "-- ----------------------- - ----rn";
$info .= "存在する場合はテーブルを削除 `".$val."`;rn";
$sqlStr = $info.$row[1].";rnrn";
/ /ファイルに追加
file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
//リソースを解放します
mysql_free_result($res);
}
//各テーブルのデータをファイルにエクスポートします
foreach($tabList as $val){
$sql = "select * from ".$val;
$res = mysql_query($sql,$link);
if(mysql_num_rows($res) //
$info = "-- ----------- -- ---------------rn";
$info .= "-- `".$val."`rn";
$info .= "-- - のレコード-- ------------------------rn";
file_put_contents($to_file_name,$info,FILE_APPEND);
//データを読み取ります
while($ row = mysql_fetch_row($res)){
$sqlStr = "INSERT INTO `".$val."` VALUES (";
foreach($row as $zd){
$sqlStr .= "'".$zd. "', ";
}
//最後のカンマとスペースを削除します
$sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
$sqlStr .= ");rn";
file_put_contents( $to_file_name,$sqlStr,FILE_APPEND);
}
//リソースを解放します
mysql_free_result($res);
file_put_contents($to_file_name,"rn",FILE_APPEND);
}
echo "OK!";
?& GT;