欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-04-10 12:10:22
...
 '',//ip地址 
	    'charset' => 'utf8',//编码 
	    'filename' => $database.'.sql',//文件名 
	    'username' => '', 
	    'password' => '' 
	); 
	mysql_connect($options['hostname'],$options['username'],$options['password'])or die("不能连接数据库!"); 
	mysql_select_db($database) or die("数据库名称错误!"); 
	mysql_query("SET NAMES '{$options['charset']}'"); 
	$tables = list_tables($database); 
	$filename = sprintf($options['filename'],$database); 
	$fp = fopen($filename, 'w'); 
	foreach ($tables as $table) { 
	    dump_table($table, $fp); 
	} 
	fclose($fp); 
	//下载sql文件 
	$file_name=$options['filename']; 
	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 . '.sql', 'w'); 
	        $need_close = true; 
	    } 
	$a=mysql_query("show create table `{$table}`"); 
	$row=mysql_fetch_assoc($a);fwrite($fp,$row['Create Table'].';');//导出表结构 
	    $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[] = "'" . mysql_real_escape_string($value) . "'"; 
	    }//开源代码phprm.com 
	    $sql .= implode(', ', $values) . ");"; 
	    return $sql; 
	}

本文地址:

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