ホームページ >php教程 >php手册 >データベースをエクスポートするコード

データベースをエクスポートするコード

WBOY
WBOYオリジナル
2016-06-21 09:06:57926ブラウズ

导出データセット|データ库

第 1 段出力データベース库の代コード
//
$dbname="mytest";
$filename="file.sql";
mysql_pconnect ("localhost:3306","root","");
//
function sqldumptable($table) {
global $DB_site;
$tabledump = "DROP TABLE IF EXISTS $table;n";
$tabledump .= "CREATE TABLE $table (n";
$firstfield=1;
$fields = mysql_query("$table からフィールドを表示");
while ($field = mysql_fetch_array($fields)) {
if (!$firstfield) {$tabledump .= ",n";} else {$firstfield =0;}
$tabledump .= " $field[フィールド] $field[タイプ]";
if (!empty($field["Default"])) {$tabledump .= " DEFAULT '$field[デフォルト] '";}
if ($field[Null] != "YES") {$tabledump .= " NOT NULL";}
if ($field[Extra] != "") {$tabledump .= " $field [追加]";}
}
mysql_free_result($fields);
$keys = mysql_query("SHOW KEYS FROM $table");
while ($key = mysql_fetch_array($keys)) {
$kname=$key[ 'Key_name'];
if ($kname != "PRIMARY" and $key['Non_unique'] == 0) { $kname="UNIQUE|$kname";}
if(!is_array($index[$kname) ])) { $index[$kname] = array();}
$index[$kname][] = $key['Column_name'];
}
mysql_free_result($keys);

// get各キー情報
while(list($kname, $columns) = @each($index)){
$tabledump .= ",n";
$colnames=implode($columns,",");

if($kname == "PRIMARY"){ $tabledump .= "主キー ($colnames)";}
else {
if (substr($kname,0,6) == "UNIQUE") {
/ / キーは一意です
$kname=substr($kname,7);
}

$tabledump .= " KEY $kname ($colnames)";

}
}

$tabledump 。 = "n);nn";

// データを取得
$rows = mysql_query("SELECT * FROM $table");
$numfields=mysql_num_fields($rows);
while ($row = mysql_fetch_array($) rows)) {
$tabledump .= "INSERT INTO $table VALUES(";

$fieldcounter=-1;
$firstfield=1;
// 各フィールドのデータを取得します
while (++$fieldcounter<$ numfields) {
if (!$firstfield) {
$tabledump.=",";
} else {
$firstfield=0;
}

if (!isset($row[$fieldcounter])) {
$tabledump .= "NULL";
} else {
$tabledump .= "'".addslashes($row[$fieldcounter])."'";
}
}

$tabledump .= ") ;n";
}
mysql_free_result($rows);

return $tabledump;
}
//関数数结束
//
$result = mysql_list_tables ($dbname);
$i = 0;
while ( $i <; mysql_num_rows ($result)) {
$tb_names[$i] = mysql_tablename ($result, $i);
$dump.=sqldumptable($tb_names[$i])."nnn";
$i++;
}

echo $dump;//可在浏览器里输出看看
$filehandle=fopen($filename,"w");
fwrite($filehandle,$dump."nnn");
fclose($filehandle );

echo "

データ成功导出!

";
?>
握り$filename="file.sql";修正$filename="file.txt";




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。