php+mysql将大数据sql文件导入数据库

<?php
    $file_name = "d:test.sql";
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "123456";
    $dbname = "test";
    set_time_limit(0);
    $fp = @fopen($file_name,"r") or die("sql文件打不开");//打开文件
    $pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");//连接数据库
    $pdo->query('set names utf8');//设置编码
    echo "正在执行导入操作";
    while($SQL = GetNextSQL()){
        if(!$pdo->query($SQL)){
            echo "执行出错";
            echo "SQL语句为".$SQL;
        }
    }
    echo "导入完成";
    fclose($fp) or die("can't close file");//关闭文件
    mysql_close();
    //从文件中逐条取sql
    function GetNextSQL(){
        global $fp;
        $sql="";
        while($line = @fgets($fp,40960)){
            $line = trim($line);
            $line = str_replace("", "//", $line);
            $line = str_replace("/","'",$line);
            $line = str_replace("//r//n","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;
    }

 

转载于:https://www.cnblogs.com/zlx7/p/5009496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值