PHP实现MySQL数据库备份,导出SQL文件
【摘要】不同版本的MySQL使用Navicate等连接工具导入导出数据库的时候,容易产生不兼容导致报错,并且无法导入导出数据。今天介绍的是自己使用PHP编程实现导出数据库,并保存到SQL文件中。
涉及PHP要点:mysql_list_tables()、SHOW CREATE TABLES 表名、INSERT INTO 表名 VALUES(...),然后连成一串写入到SQL文件中
- $sql = "SHOW TABLES";
- $dbname="test";
- $tables=mysql_query($sql);
- foreach($tables as $k => $v){
- $tbls[$v[$dbname]]['tb_name']=$v[$dbname];
- }
- foreach($tbls as $k => $v){
- $sql = "SHOW CREATE TABLE {$v['tb_name']}";
- $tbls_sql = $m->query($sql);
- $tables_sql[]=$tbls_sql[0]['Create Table'].";";
- $tbls[$k]['sql']="DROP TABLE IF EXISTS `{$v['tb_name']}`;\r\n".$tbls_sql[0]['Create Table'].";";
- }
-
- foreach($tbls as $k => $v){
- $sql = "SELECT * FROM {$v['tb_name']}";
- $tbls_data=$m->query($sql);
- foreach($tbls_data as $key => $value){
- $values="";
- $count=count($value);
- $i = 0;
- foreach($value as $kk => $vv){
- $i++;
- if($count==$i){
- $values.="'".$vv."'";
- }else{
- $values.="'".$vv."',";
- }
- }
- $str="INSERT INTO {$v['tb_name']} VALUES({$values});";
- $tbls[$k]['data'][]=$str;
- }
-
- }
- $str = "";
-
- foreach($tbls as $k => $v){
- $str .= $v['sql']."\r\n";
- foreach($v['data'] as $key => $value){
- $str .= $value."\r\n";
- }
- $str .="\r\n\r\n";
- }
- // 以只读的方式打开文件
- $handle = fopen("test.sql", "w");
- // 写入文件
- fwrite($handle,$str);
- // 关闭文件
- fclose($handle);
截图
版权归 马富天PHP博客 所有
本文标题:《PHP实现MySQL数据库备份,导出SQL文件》
本文链接地址:http://www.mafutian.net/16.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^