一键导出MySQL数据库PHP代码


关键词

PHP MYSQL 导出

摘要

很多时候,我们的用户要导出整个数据库到一个SQL文件,用来备份。虽然phpMyAdmin或者Navicat有这个功能,但用户一般想要操作更简单,不愿意去使用工具。这时候我们就可以考虑以下一键导出MySQL数据库的php代码。
很多时候,我们的用户要导出整个数据库到一个SQL文件,用来备份。虽然phpMyAdmin或者Navicat有这个功能,但用户一般想要操作更简单,不愿意去使用工具。这时候我们就可以考虑以下一键导出MySQL数据库的php代码。
新建一个名为backup.php的文件,复制粘贴以下代码,然后编辑数据库连接设置和mysqldump的路径。有必要的话,你还可以添加一个backup.php超链接到你的程序里:
<A href="backup.php">导出整个数据库</A>
请注意,第一个php代码执行的时候,会导出zip压缩后的sql文件,所以此代码所在文件夹需要可写的权限。
如果你没有写的权限,请使用第二个php代码,缺点是导出的sql文件不会被zip压缩。
此代码需要可写权限:
<?php
$username = "root";  
$password = "";  
$hostname = "localhost";  
$dbname   = "cars";
// if mysqldump is on the system path you do not need to specify the full path
// simply use "mysqldump --add-drop-table ..." in this case
$dumpfname = $dbname . "_" . date("Y-m-d_H-i-s").".sql";
$command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname
    --user=$username ";
if ($password)  
$command.= "--password=". $password ." ";  
$command.= $dbname;
$command.= " > " . $dumpfname;
system($command);
// zip the dump file
$zipfname = $dbname . "_" . date("Y-m-d_H-i-s").".zip";
$zip = new ZipArchive();
if($zip->open($zipfname,ZIPARCHIVE::CREATE))  
{
   $zip->addFile($dumpfname,$dumpfname);
   $zip->close();
}
// read zip file and send it to standard output
if (file_exists($zipfname)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($zipfname));
    flush();
    readfile($zipfname);
    exit;
}
?>
此代码不需要可写权限:
<?php
ob_start();
$username = "root";  
$password = "";  
$hostname = "localhost";  
$dbname   = "cars";
// if mysqldump is on the system path you do not need to specify the full path
// simply use "mysqldump --add-drop-table ..." in this case
$command = "C:\\xampp\\mysql\\bin\\mysqldump --add-drop-table --host=$hostname
    --user=$username ";
if ($password)  
$command.= "--password=". $password ." ";  
$command.= $dbname;
system($command);
$dump = ob_get_contents();  
ob_end_clean();
// send dump file to the output
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($dbname . "_" .  
date("Y-m-d_H-i-s").".sql"));
flush();
echo $dump;
exit();]]>
?>

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:一键导出MySQL数据库PHP代码:http://www.splaybow.com/post/php-exportmysql.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程中有任何疑问,洪哥以此为饭碗,请加QQ:115085382!
了解更多好文章,请关注我们的新浪微博和腾讯微博
亲,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« PHP空值NULL PHP中for循环的几种特殊用法 »