WenRou's Blog

新浪微薄腾讯微薄

最新碎语:测试图片碎语哦

您的位置:WenRou's Blog >面板> Directadmin面板导入大SQL文件.

Directadmin面板导入大SQL文件.

    一般人多数据库应该也米达到几十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文件.

发表评论

11 + 3 =
路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交