> php教程 > php手册 > 본문

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

WBOY
풀어 주다: 2016-05-24 13:25:37
원래의
1012명이 탐색했습니다.

<?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; 
	}
로그인 후 복사

本文地址:

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!