一键导出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循环的几种特殊用法 »

相关文章:

PHP操作Word的组件PHPWord有两个版本  (2017/5/3 7:40:06)

PHP求最大值的max函数  (2017/4/21 7:43:22)

PHP求最小值的min函数  (2017/4/11 7:33:43)

PHP数组降序排序rsort()函数  (2017/3/28 7:04:09)

PHP数组升序排序sort()函数  (2017/3/25 7:02:40)

ThinkPHP中if标签的使用  (2017/1/21 7:31:57)

Thinkphp整合支付宝  (2016/10/8 9:08:19)

PHP的highlight_file显示程序源文件  (2017/1/11 7:05:58)

洪哥的ThinkPHP教程之编写列表页  (2016/6/7 7:48:14)

ThinkPHP中调用PHPExcel  (2016/12/11 7:30:07)