WenRou's Blog
Directadmin面板导入大SQL文件.
2016-1-9 温柔哥


    一般人多数据库应该也米达到几十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 执行写入。



说白了就是一条条读取。一条条的写入。

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容