SQL ファイルを生成するために mysql データベース全体をエクスポートする php の具体的な実装_PHP チュートリアル

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

インターネットで調べたところ、変更がありました。

ファイル名: db_backup.php

ソースコードは次のとおりです:

コードをコピーします コードは次のとおりです:

ini_set("max_execution_time", "180");//過剰なデータ量と不完全なエクスポートを避けます。

/*

プログラム関数: mysql データベースバックアップ関数
作者: Tang Xiaogang
説明:
このプログラムは主に mysqladmin から抽出され、特定の調整が加えられています。PHP でプログラミングする際のデータのバックアップに役立つことを願っています。 .
構造をバックアップしたくない場合は、次の文を除外してください: echo get_table_struction($dbname, $table, $crlf)
バックアップしたくない場合は内容: この文をスクリーンアウトしてください: echo get_table_content($ dbname, $table, $crlf);

修正者: He Jinsheng
修正日時: 2009/11/7
修正内容: get_table_struct 関数を追加、関数 get_table_def をコメント化テーブルの作成時により詳細な詳細を取得するため (例: ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='製品情報変更情報')
*/

$host="";//Database address

$dbname="";// ここでデータベース名を設定します

$username="";// ユーザー名

$passw="";// ここでパスワードを設定します

$filename=date(" Y-m-d_H-i-s")."-".$ dbname.".sql";
header("Content-disposition:filename=".$filename);//保存されたファイル名
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires:0");

//バックアップデータ
$i = 0;
$crlf="rn";
global $dbconn;
$dbconn = mysql_connect($host, $username,$passw]);//データベースホスト、ユーザー名、パスワード
$db = mysql_select_db($dbname,$dbconn);
mysql_query("SET NAMES ' utf8'");
$tables =mysql_list_tables($dbname ,$dbconn);
$num_tables = @mysql_numrows($tables);
print "-- filename=".$filename;
while($i < $num_tables )
{
$table=mysql_tablename($tables,$ i);
print $crlf;
echo get_table_struct($dbname, $table, $crlf).";$crlf$crlf"; dbname, $table, $crlf).";$crlf $crlf";
echo get_table_content($dbname, $table, $crlf)
}

/*詳細なテーブル構造を取得する新しい関数*/
function get_table_struct($db,$table,$crlf)
{
global $drop;

$schema_create = "";
if(!empty($drop)){ $schema_create .= "DROP TABLE IF EXISTS `$ table`;$crlf";}
$result =mysql_db_query ($db, "SHOW CREATE TABLE $table");
$row=mysql_fetch_array($result);
$schema_create .= $crlf."-- ".$ row[0].$crlf;
$schema_create .= $row[1].$crlf;
Return $schema_create;
}

/*
//その他は不完全でした
function get_table_def( $db,$table,$crlf)
{
global $drop;

$schema_create = "";
if(!empty($drop))
$schema_create .= "`$table` が存在する場合はテーブルを削除しますcrlf";

$schema_create .= "CREATE TABLE ` $table` ($crlf";
$result = mysql_db_query($db, "$table から完全なフィールドを表示");
while($row = mysql_fetch_array($result) ))
{
$schema_create .= " `$row [フィールド]` $row[タイプ]";

if(isset($row["Default"]) && (!empty($row["Default"]) ) || $row["デフォルト"] == " 0"))
$schema_create .= " DEFAULT '$row[デフォルト]'"
if($row["Null"] != "YES")
$schema_create .= " NOT NULL";
if($ row["Extra"] != "")
$schema_create .= " $row["Comment"] != " ")
$schema_create .= " コメント '$row[コメント]'";
$schema_create .= ",$crlf";
}
$schema_create = ereg_replace(",".$crlf."$", "" , $schema_create);
$result = mysql_db_query($db , "$table からキーを表示");
{
$kname=$row['Key_name']; if(($kname != "PRIMARY") && ( $row['Non_unique'] == 0))
$kname="UNIQUE|$kname"
if(!isset($index[$kname]))
$index[$kname] = array();
$index[$kname][] = $row['Column_name']
}

while(list($x,$columns) = @each($index) ))
{
$schema_create .= ",$crlf ";
if($x == "PRIMARY")
$schema_create .= " PRIMARY KEY (".implode($columns,", ") . ")" ;
elseif (substr($x,0,6) == "UNIQUE")
$schema_create .= " UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
else
$schema_create .= " KEY $x (" . implode($columns, ", ") . ")";

$schema_create .= "$crlf)"; ($schema_create));
}
*/

//テーブルの内容を取得する
function get_table_content($db, $table, $crlf)
{
$schema_create = ""
$result; = mysql_db_query($db, "SELECT * FROM $table" );
$i = 0;
while($row = mysql_fetch_row($result))
{
$schema_insert = "`$table` 値に挿入 (";
for($j=0; $j{
if(!isset($row[$j]))
$schema_insert .= " NULL,"; row[$j] != "")
$schema_insert .= " '".addslashes($row[$j])."',";
else
$schema_insert .= " '',"; $schema_insert = ereg_replace(",$", "", $schema_insert .= ");$crlf";
$temp = $temp.$schema_insert
}
return $temp;
}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/676878.html技術記事インターネットで調べたところ、変更がありました。 ファイル名: db_backup.php ソース コードは次のとおりです: コードをコピー コードは次のとおりです: ?php ini_set("max_execution_time", "180");//過剰なデータ量と不完全なエクスポートを回避します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート