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

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

WBOY
WBOYOriginal
2016-05-24 13:25:37993Durchsuche

<?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; 
	}

本文地址:

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

Stellungnahme:
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