Heim > php教程 > php手册 > php导出.sql文件,mysql数据库备份程序

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

WBOY
Freigeben: 2016-05-24 13:25:37
Original
1044 Leute haben es durchsucht

<?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; 
	}
Nach dem Login kopieren

本文地址:

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage