Home > php教程 > php手册 > 一段导出数据库的代码

一段导出数据库的代码

WBOY
Release: 2016-06-21 09:06:57
Original
929 people have browsed it

导出数据|数据库

一段导出数据库的代码
 
//
$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("SHOW FIELDS FROM $table");
while ($field = mysql_fetch_array($fields)) {
if (!$firstfield) {$tabledump .= ",\n";} else {$firstfield=0;}
$tabledump .= " $field[Field] $field[Type]";
if (!empty($field["Default"])) {$tabledump .= " DEFAULT '$field[Default]'";}
if ($field[Null] != "YES") {$tabledump .= " NOT NULL";}
if ($field[Extra] != "") {$tabledump .= " $field[Extra]";}
}
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 each key info
while(list($kname, $columns) = @each($index)){
$tabledump .= ",\n";
$colnames=implode($columns,",");

if($kname == "PRIMARY"){ $tabledump .= " PRIMARY KEY ($colnames)";}
else {
if (substr($kname,0,6) == "UNIQUE") {
// key is unique
$kname=substr($kname,7);
}

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

}
}

$tabledump .= "\n);\n\n";

// get data
$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;
// get each field's data
while (++$fieldcounterif (!$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 $tb_names[$i] = mysql_tablename ($result, $i);
$dump.=sqldumptable($tb_names[$i])."\n\n\n";
$i++;
}

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

echo "

数据成功导出!

";
?>
把$filename="file.sql";改成$filename="file.txt";
 
 



Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template