php导出mysql数据库的代码

12 篇文章 0 订阅

<?
//
$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>";
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值