phpチュートリアルエクスポート.sqlファイル/mysqlチュートリアルデータベースチュートリアルバックアッププログラム
$database='';//データベース名
$options=array(
'ホスト名' => '',//IP アドレス
'charset' => 'utf8',//エンコーディング
'filename' => $database.'.sql',//ファイル名
'ユーザー名' => '',
'パスワード' => ''
;
);
mysql_connect($options['hostname'],$options['username'],$options['password'])or die("データベースに接続できません!");
mysql_select_db($database) または die("データベース名が間違っています!");
mysql_query("SET NAMES '{$options['charset']}'");
$tables = list_tables($database);
$filename = sprintf($options['filename'],$database);
$fp = fopen($filename, 'w');
foreach ($tables として $table) {
dump_table($table, $fp);
}
fclose($fp);
//SQLファイルをダウンロード
$file_name=$options['ファイル名'];
Header("コンテンツタイプ:アプリケーション/オクテットストリーム");
Header("Content-Disposition:attachment;filename=".$file_name);
readfile($file_name);
//サーバー上のSQLファイルを削除します
リンク解除($file_name);
終了します;
//テーブルの名前を取得します
関数 list_tables($database)
{
$rs = mysql_list_tables($database);
$tables = array();
While ($row = mysql_fetch_row($rs)) {
$tables[] = $row[0];
}
Mysql_free_result($rs);
$tables を返します;
}
//データベースをエクスポートします
関数 dump_table($table, $fp = null)
{
$need_close = false;
If (is_null($fp)) {
$fp = fopen($table . '.sql', 'w');
$need_close = true;
}
$a=mysql_query("show create table `{$table}`");
$row=mysql_fetch_assoc($a);fwrite($fp,$row['Create Table'].';');//テーブル構造をエクスポートします
$rs = mysql_query("SELECT * FROM `{$table}`");
While ($row = mysql_fetch_row($rs)) {
fwrite($fp, get_insert_sql($table, $row));
}
Mysql_free_result($rs);
If ($need_close) {
fclose($fp);
}
}
//テーブルデータをエクスポート
関数 get_insert_sql($table, $row)
{
$sql = "`{$table}` 値に挿入 (";
$values = array();
foreach ($row as $value) {
$values[] = "'" . mysql_real_escape_string($value) .
}
$sql .= implode(', ', $values) ");";
$sql を返します;
}?>