一般人多数据库应该也米达到几十MB的。但是也是有人达到了。就算可以导入。但是有的主机商也有限制post提交文件大小的现在。我们家的最低限制是50M。也应该是够用了。有的则不是。今天在 红色石头 那看到了这个,亲自试了一下。效果不错。速度也快。这样解决了大文件不能导入PHPMYADMIN的问题。可导入的时候脚本超时的问题!
下面来代码:
<?php $file = $_GET['f']; define('DB_NAME', 'xxx'); define('DB_USER', 'xxx'); define('DB_PASSWORD', 'xxx'); define('DB_HOST', 'localhost:3306'); /*直接copy您wordpress数据库设置部分即可*/ $mysql = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("mysql connect fail, wrong password"); mysql_select_db(DB_NAME)or die("select DB fail"); mysql_query("set names utf8"); $fp = fopen($file . '.sql',"r") or die('can not open file'); $line = ''; while (!feof($fp)) { $line .= fgets($fp); //以;结尾,那么执行这一行 if(preg_match("/\;$/",$line)) { mysql_query( $line ); if( mysql_error()) { echo mysql_error()."<br />"; } else{ $n ++; } $line = ''; } } fclose($fp); echo "<br />mysql queries:".$n; ?>
实现原理:
采用了php默认函数 fopen 来循环读取每行数据。如果读到是一条整体语句。就调用mysql_query 执行写入。
说白了就是一条条读取。一条条的写入。
---
转载请注明本文标题和链接:《Directadmin面板导入大SQL文件.》
发表评论