忘记从哪来了,反正主要是方便 要用到话 复制粘贴 改数据库的信息 就OK了
//备份数据库
public function backups() {
header('Content-Type:text/html;charset=utf8');
ini_set("max_execution_time", "0");//代码运行时间不限制 防止备份失败
ini_set('memory_limit', '1024M');//设置内存 根据需求可以修改
date_default_timezone_set("PRC");
header("Content-Type:text/html;charset=utf-8");
$host="****";
$user = '****'; //数据库账户
$pwd = '******'; //数据库密码
$dbname = '*****'; //数据库名称
$con = mysqli_connect("$host","$user","$pwd","$dbname");
mysqli_select_db($con,$dbname);
$mysql= "set charset utf8;\r\n";#for mysql>=5.0
mysqli_query($con,"SET NAMES 'UTF8'");
$q1=mysqli_query($con,"show tables");
while($t=mysqli_fetch_array($q1)){
$table=$t[0];
$q2=mysqli_query($con,"show create table `$table`");
$sql=mysqli_fetch_array($q2);
$mysql.=$sql['Create Table'].";\r\n\r\n";#DDL
$q3=mysqli_query($con,"select * from `$table`");
while($data=mysqli_fetch_assoc($q3))
{
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insert into `$table`($keys) values($vals);\r\n";
unset($data);
}
$mysql.="\r\n";
unset($t);
}
mysqli_close($con);
$filename=date('Ymj_His').".sql"; //文件名为当天的日期
$time = time();
$path = '/www/admin/backup/TY';
// 检查目录是否存在
if(!is_dir($path)){
// 新建目录
mkdir($path, 0777, true);
}
$file_name = $path.$filename;
$fp = fopen($file_name,'w');
fputs($fp,$mysql);
fclose($fp);
$fp=fopen($file_name,"r");
$file_size=filesize($file_name);
if ($file_size){
echo '成功';
}
// 这边注释解开,就可以下载了
// header("Content-type: application/octet-stream");
// header("Accept-Ranges: bytes");
// header("Accept-Length: ".$file_size);
// header("Content-Disposition: attachment; filename=".$filename);
这里一定要使用echo 进行输出,否则下载的文件是空白的
// echo fread($fp,$file_size);
// fclose($fp);
exit;
}