php导出mysql数据库的代码
2015-12-11 15:41
591 查看
<?
//
$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 (++$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])."\n\n\n";
$i++;
}
echo $dump;//可以在浏览器里输出看看
$filehandle=fopen($filename,"w");
fwrite($filehandle,$dump."\n\n\n");
fclose($filehandle);
echo "<p>数据成功导出!</p>";
?>
//
$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 (++$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])."\n\n\n";
$i++;
}
echo $dump;//可以在浏览器里输出看看
$filehandle=fopen($filename,"w");
fwrite($filehandle,$dump."\n\n\n");
fclose($filehandle);
echo "<p>数据成功导出!</p>";
?>
相关文章推荐
- 一个关于if else容易迷惑的问题
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- JSP/PHP基于Ajax的分页功能实现
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- 关于PHP通过PDO用中文条件查询MySQL的问题。