PHP头条
热点:

php读取sql文件导入数据库


像这种php读取sql文件导入数据库情况,用得最多的就是数据库备份与还原来了,原理很简单按指定格式导入成.sql文件或利用phpmyadmin导出都可以用本程序来实现导入,代码如下:

 '5.0') {
        mysql_query("set sql_mode=''");
    }
    $file2 = file_get_contents($file);
    $file2 = iconv("utf-8", "gbk", $file2);
    $file2 = str_replace("seo教程_", $mysql_table_prefix, $file2); //将文件中数据库表前缀换成用户设定的前缀
    $file2 = explode("n", $file2); //将文件内容按行读入到数组
    $c1 = count($file2);
    for ($j = 0; $j < $c1; $j++) {
        $ck = substr($file2[$j], 0, 4); //取每行的前4个字符
        if (ereg("#", $ck) || ereg("--", $ck)) //去掉注释
        {
            continue;
        }
        $arr[] = $file2[$j]; //将去掉注释的文件内容按行读入数组$arr,数组每个元素对应一行
        
    }
    $read = implode("n", $arr); //重新组织文件内容到一个字符串,(按照原来分好的一行一行的)
    $sql = str_replace("r", '', $read); //去掉"r(回车符)"
    $detail = explode(";n", $sql);
    //将经上述整理过的文件内容再次按一条完整的sql语句(以;和n分隔)导入到数组$detail,
    //此时数组detail的每个元素对应一条完整的sql语句
    $count = count($detail);
    for ($i = 0; $i < $count; $i++) {
        $sql = str_replace("r", '', $detail[$i]); //去掉每行sql中的回车符
        $sql = str_replace("n", '', $sql); //去掉换行符
        $sql = trim($sql); //去掉前后空格
        //现在的$sql
        if ($sql) {
            if (eregi("create table", $sql)) //如果当前的sql语句是创建新表,则考虑版本兼容,以及重设字符集
            {
                //$mysqlv=mysql_get_server_info();
                $sql = preg_replace("/default charset=([a-z0-9]+)/is", "", $sql); //去除原来的字符集设置信息
                $sql = preg_replace("/type=myisam/is", "engine=myisam", $sql);
                if ($dbcharset) {
                    $sql = str_replace("engine=myisam", " engine=myisam default charset=$dbcharset ", $sql);
                }
                if (mysql_get_server_info() < '4.1') { //开源代码phprm.com
                    $sql = preg_replace("/engine=myisam/is", "type=myisam", $sql); //
                    
                }
            }
            mysql_query($sql);
        }
    }
}


永久地址:

转载随意~请带上教程地址吧^^

www.phpzy.comtrue/php/32270.htmlTechArticlephp读取sql文件导入数据库 像这种php读取sql文件导入数据库情况,用得最多的就是数据库备份与还原来了,原理很简单按指定格式导入成.sql文件或利用phpmyadmin导出都可以用本程序来实现导...

相关文章

PHP之友评论

今天推荐