php处理mysql大文件插入mysql数据库!

数据库导出的sql文件,包括(注释,创建表的sql,插入表数据的sql等),如果文件好几百M,sql记录几十万条,用PHP文件函数,一次读取一行,进行处理。
php处理mysql大文件插入mysql数据库!_第1张图片
Paste_Image.png
测试文件38.2M,从Mysql服务器导出SQL文件,用PHP代码实现导入本地数据库。
php处理mysql大文件插入mysql数据库!_第2张图片
Paste_Image.png
代码如下:
    set_time_limit(0);//解除php執行脚本30秒限制
 
    $filename='./sql/test.sql'; //Big File 4G 
    $file = fopen($filename, "r") or exit("文件无法打开!");
    
    
    $conn =  mysqli_connect("localhost",'root','root','test');//连接数据库
  
        mysqli_set_charset($conn, "utf8");//设置编码
        
       /*
       if ($conn->affected_rows > 0) { //查询有数据执行
         
                while ($row = $result->fetch_assoc()) {
                      print_R($row);
                }
       
        }
      */ 
         
        
    $sql = '';
    while(!feof($file)){//如果不是最後一行
        $f = fgets($file);//獲取一行内容
        
        if($f){//获取的一行内容不为空
        
            $sql.= $f; //拼接行数据,直至遇到 ';' 组合成一条sql语句
            $b = strstr($f, ';');  //如果此行数据包含';' 
            unset($f);//銷毀一行内容
            
            if($b){ //如果凑夠一行sql,則執行
                // echo $sql."
"; $result = $conn->query($sql);//執行結果var_dump為true,否則為false $sql = ''; //重新拼接下一条sql语句 } } }
测试一个4G的文本文件处理失败!

你可能感兴趣的:(php处理mysql大文件插入mysql数据库!)