php导入还原sql文件功能示例(仿phpmyadmin导入)

原文链接:http://www.junbj.com/post/55

前面小站有篇文章(php导出备份MySql数据库功能示例)提到过,网站后台里数据库的备份和还原(导出和导入)是一个非常重要的功能。小站在 MySQL数据库导入和导出的多种方法这篇文章里已经介绍过。还是那句话,这次我们用php来给自己写一个导出数据库sql文件的功能,因为有些时候,我们租用的廉价虚拟主机不一定提供phpmyadmin的权限,这个时候,只能靠自己了。下面开始上代码:


一般导入sql文件的功能都是先选择一个sql文件上传到服务端,这里省略文件上传的过程,假设文件已经上传到服务端。如果需要php文件上传功能示例教程的朋友稍等一会儿,小站以后很快更新,下面先上执行sql文件的代码:

<?php
header('Content-type:text/html; charset=utf-8');   
  
// 配置数据库信息   
$db_h = 'localhost';   
$db_u = 'root';   
$db_p = '';   
$db_n = 'wenda';        // 数据库名称   
$db_char = 'utf8';         
$sql_file = 'test.sql'; // 需导入的sql文件路径(文件名)   
  
$link = mysql_connect($db_h,$db_u,$db_p);   
mysql_query('set names '.$db_char);   
mysql_select_db($db_n);   
  
$lines=file($sql_file); // 读取文件到数组$lines   
echo '正在导入sql...<br>';   
$sqlstr=""; // 声明sql语句字符串   
  
// 处理数组$lines,去掉注释行,放入$sqlstr中   
foreach($lines as $line){   
    $line=trim($line);   
    if($line!=""){   
        if((substr($line,0,1)!="#" && substr($line,0,2)!="--")){   
            $sqlstr.=$line;     
        }   
    }   
}   
$sqlstr=preg_replace("/\/\*.*\*\//is","",$sqlstr); //去掉 /**/注释   
  
// 处理$sqlstr,用分号分成单句sql语句   
$sqlstr=rtrim($sqlstr,";");   
$sqls=explode(";",$sqlstr);   
  
// 循环遍历执行$sqls里的sql语句   
foreach($sqls as $sql){   
    if(mysql_query($sql)){   
        echo '执行成功!=><br>'.substr($sql,0,50).'<br>';   
    }else{   
        echo '执行失败!=><br>'.mysql_error().'<br>';   
    }   
}   
echo '导入完成!';

这样我们就能自己写一个sql文件导入还原的功能了。以上代码示例供大家学习用,实际使用的时候注意考虑安全问题。

你可能感兴趣的:(php教程,导入sql,数据库还原,mysql教程,php执行sql)