Home > php教程 > php手册 > body text

php导出.sql文件,mysql数据库备份程序

WBOY
Release: 2016-05-24 13:25:37
Original
1009 people have browsed it

<?php 
	$database=&#39;&#39;;//数据库名 
	$options=array( 
	    &#39;hostname&#39; => &#39;&#39;,//ip地址 
	    &#39;charset&#39; => &#39;utf8&#39;,//编码 
	    &#39;filename&#39; => $database.&#39;.sql&#39;,//文件名 
	    &#39;username&#39; => &#39;&#39;, 
	    &#39;password&#39; => &#39;&#39; 
	); 
	mysql_connect($options[&#39;hostname&#39;],$options[&#39;username&#39;],$options[&#39;password&#39;])or die("不能连接数据库!"); 
	mysql_select_db($database) or die("数据库名称错误!"); 
	mysql_query("SET NAMES &#39;{$options[&#39;charset&#39;]}&#39;"); 
	$tables = list_tables($database); 
	$filename = sprintf($options[&#39;filename&#39;],$database); 
	$fp = fopen($filename, &#39;w&#39;); 
	foreach ($tables as $table) { 
	    dump_table($table, $fp); 
	} 
	fclose($fp); 
	//下载sql文件 
	$file_name=$options[&#39;filename&#39;]; 
	Header("Content-type:application/octet-stream"); 
	Header("Content-Disposition:attachment;filename=".$file_name); 
	readfile($file_name); 
	//删除服务器上的sql文件 
	unlink($file_name); 
	exit; 
	//获取表的名称 
	function list_tables($database) 
	{ 
	    $rs = mysql_list_tables($database); 
	    $tables = array(); 
	    while ($row = mysql_fetch_row($rs)) { 
	        $tables[] = $row[0]; 
	    } 
	    mysql_free_result($rs); 
	    return $tables; 
	} 
	//导出数据库 
	function dump_table($table, $fp = null) 
	{ 
	    $need_close = false; 
	    if (is_null($fp)) { 
	        $fp = fopen($table . &#39;.sql&#39;, &#39;w&#39;); 
	        $need_close = true; 
	    } 
	$a=mysql_query("show create table `{$table}`"); 
	$row=mysql_fetch_assoc($a);fwrite($fp,$row[&#39;Create Table&#39;].&#39;;&#39;);//导出表结构 
	    $rs = mysql_query("SELECT * FROM `{$table}`"); 
	    while ($row = mysql_fetch_row($rs)) { 
	        fwrite($fp, get_insert_sql($table, $row)); 
	    } 
	    mysql_free_result($rs); 
	    if ($need_close) { 
	        fclose($fp); 
	    } 
	} 
	//导出表数据 
	function get_insert_sql($table, $row) 
	{ 
	    $sql = "INSERT INTO `{$table}` VALUES ("; 
	    $values = array(); 
	    foreach ($row as $value) { 
	        $values[] = "&#39;" . mysql_real_escape_string($value) . "&#39;"; 
	    }//开源代码phprm.com 
	    $sql .= implode(&#39;, &#39;, $values) . ");"; 
	    return $sql; 
	}
Copy after login

本文地址:

转载随意,但请附上文章地址:-)

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!