创建时间:2019-03-19
mysql数据库备份,只能在PHP 5一下正常运行
新建php文件,复制粘贴下面代码,直接a标签访问该新建php文件即可
<?php// 数据库备份header("Content-type:text/html;charset=utf-8");
$dbms = \'mysql4\'; // 数据库类型,此项不可修改$dbhost = \'127.0.0.1\'; // 数据库服务器$dbuser = \'mrchenanan\'; // 数据库用户名//yanhuang520$dbpw = \'mrchenanan\'; // 数据库密码$dbname = \'mrchenanan\'; // 数据库名$dbconnect = \'0\'; // 数据库持久连接 0=关闭, 1=打开$mysql_mylink = @mysql_connect($dbhost, $dbuser, $dbpw);
mysql_query("SET NAMES \'utf8\'");
$tablepre = \'an_\'; // 表 前缀$charset=\'utf-8\'; //设置字符集@$CONFIG[charset]=\'utf-8\'; //设置字符集global $dbhost,$dbuser,$dbpw,$dbname;//配置信息$cfg_dbhost = $dbhost;
$cfg_dbname = $dbname;
$cfg_dbuser = $dbuser;
$cfg_dbpwd = $dbpw;
$cfg_db_language = \'utf8\';
$to_file_name = \'db/\'.date("YmdHis")."-$dbname.sql"; //备份名称// END 配置//链接数据库$link = mysqli_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd,$cfg_dbname);//选择编码mysqli_set_charset($link,$cfg_db_language);//数据库中有哪些表$tables = mysqli_query($link,"show tables");//die(var_dump($tables));//将这些表记录到一个数组$tabList = array();while($row = mysqli_fetch_row($tables)){
$tabList[] = $row[0];
}//echo "运行中,请耐心等待...<br/>";$info = "-- ----------------------------\\r\\n";
$info .= "-- 日期:".date("Y-m-d H:i:s",time())."\\r\\n";
$info .= "-- ----------------------------\\r\\n";
$info .= "-- ----------------------------\\r\\n\\r\\n";
file_put_contents($to_file_name,$info,FILE_APPEND);//FILE_APPEND:在文件末尾以追加的方式写入数据//将每个表的表结构导出到文件foreach($tabList as $val){
$sql = "show create table ".$val;
$res = mysqli_query($link,$sql);
$row = mysqli_fetch_array($res);
$info = "-- ----------------------------\\r\\n";
$info .= "-- Table structure for `".$val."`\\r\\n";
$info .= "-- ----------------------------\\r\\n";
$info .= "DROP TABLE IF EXISTS `".$val."`;\\r\\n";
$sqlStr = $info.$row[1].";\\r\\n\\r\\n";//追加到文件
file_put_contents($to_file_name,$sqlStr,FILE_APPEND);//释放资源
mysqli_free_result($res);
}//将每个表的数据导出到文件foreach($tabList as $val){
$sql = "select * from ".$val;
$res = mysqli_query($link,$sql);//如果表中没有数据,则继续下一张表
if(mysqli_num_rows($res)<1) continue;//// $info = "-- ----------------------------\\r\\n";// $info .= "-- Records for `".$val."`\\r\\n";// $info .= "-- ----------------------------\\r\\n";
file_put_contents($to_file_name,$info,FILE_APPEND);//读取数据
while($row = mysqli_fetch_row($res)){
$sqlStr = "INSERT INTO `".$val."` VALUES ("; foreach($row as $zd){
$sqlStr .= "\'".$zd."\', ";
}//去掉最后一个逗号和空格
$sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
$sqlStr .= ");\\r\\n";
file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
}//释放资源
mysqli_free_result($res);
file_put_contents($to_file_name,"\\r\\n",FILE_APPEND);
}//浏览器直接下载保存header("Content-type:application/octet-stream");
header("Content-Disposition:attachment;filename=".$to_file_name);
readfile($to_file_name);//输出一个文件// @unlink($to_file_name);//函数删除文件。// echo "OK!请到根目录的uploadfile/dbakup文件夹下取备份!";?>下一篇:php中数组序列化入库方法