以下函數(shù)可以直接把從phpmyadmin導(dǎo)出的sql文件直接通過php插入數(shù)據(jù)庫:
//$file表示通過讀取sql文件返回的字符串,比如$file2=file_get_contents('db.sql');
function import($file2){
$Db = new Db();
$file2=explode("\n",$file2);//將文件內(nèi)容按行讀入到數(shù)組
$c1=count($file2);
for($j=0;$j<$c1;$j++)
{
$ck=substr($file2[$j],0,4);//取每行的前4個(gè)字符
if( ereg("#",$ck)||ereg("--",$ck) )//去掉注釋
{
continue;
}
$arr[]=$file2[$j];//將去掉注釋的文件內(nèi)容按行讀入數(shù)組$arr,數(shù)組每個(gè)元素對(duì)應(yīng)一行
}
$read=implode("\n",$arr); //重新組織文件內(nèi)容到一個(gè)字符串,(按照原來分好的一行一行的)
$sql=str_replace("\r",'',$read);//去掉"\r(回車符)"
$detail=explode(";\n",$sql);
//將經(jīng)上述整理過的文件內(nèi)容再次按一條完整的sql語句(以;和\n分隔)導(dǎo)入到數(shù)組$detail,
//此時(shí)數(shù)組detail的每個(gè)元素對(duì)應(yīng)一條完整的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);//去掉前后空格
//現(xiàn)在的$sql
$Db->query($sql);
}
}