php 导入.sql文件到mysql数据库

作者:袖梨 2022-07-02
 代码如下 复制代码

set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$db =  new mysql($location['host'],$location['hostname'],$location['hostpass'],$location['table'],"utf8",$location['ztime']);  
$fp = @fopen($sql, "r") or die("不能打开sql文件 $sql");//打开文件
while($sql=getnextsql()){
    mysql_query($sql);
}
//echo "用户数据导入完成!";
fclose($fp) or die("can't close file $file_name");//关闭文件

//从文件中逐条取sql
function getnextsql() {
    global $fp;
    $sql="";
    while ($line = @fgets($fp, 40960)) {
        $line = trim($line);
        //以下三句在高版本php中不需要,在部分低版本中也许需要修改
        //$line = str_replace("\","",$line);
        //$line = str_replace("'","'",$line);
        //$line = str_replace("rn",chr(13).chr(10),$line);
        //$line = stripcslashes($line);
        if (strlen($line)>1) {
            if ($line[0]=="-" && $line[1]=="-") {
                continue;
            }
        }
        $sql.=$line.chr(13).chr(10);
        if (strlen($line)>0){
            if ($line[strlen($line)-1]==";"){
                break;
            }
        }
    }
    return $sql;
}
?>

 

相关文章

精彩推荐