phpmyadmin导出的sql,交给php程序导入到别的库中,如何实现呢?本文为大家提供了一种不错的方法,有需要的朋友,可以看看。
完整代码如下。
- <!--?php
- //导入phpmyadmin导出的sql数据
- //整理 bbs.it-home.org
- //$file表示通过读取sql文件返回的字符串,比如$file2=file_get_contents('db.sql');
- function import($file2){
- $Db = new Db();
- $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
- $Db--->query($sql);
- }
- }
- ?>
|