程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php讀取sql文件導入數據庫(支持phpmyadmin導出)

php讀取sql文件導入數據庫(支持phpmyadmin導出)

編輯:關於PHP編程

php讀取sql文件導入數據庫(支持phpmyadmin導出) 像這種php讀取sql文件導入數據庫情況,用得最多的就是數據庫備份與還原來了,原理很簡單按指定格式導入成.sql文件或利用phpmyadmin導出都可以用本程序來實現導入哦。

php教程讀取sql文件導入數據庫教程(支持phpmyadmin導出)
像這種php讀取sql文件導入數據庫情況,用得最多的就是數據庫備份與還原來了,原理很簡單按指定格式導入成.sql文件或利用phpmyadmin導出都可以用本程序來實現導入哦。
*/

function into_sql($file)
{
   global $mysql教程_host,$mysql_user,$mysql_password,$mysql_db,$mysql_table_prefix,$dbcharset;//獲取數據庫配置信息
    mysql_connect($mysql_host,$mysql_user,$mysql_password);
    mysql_select_db($mysql_db);

    if( mysql_get_server_info() < '4.1' )
    //返回 link_identifier 所使用的服務器版本。如果省略 link_identifier,則使用上一個打開的連接。
    {
        $dbcharset='';//設置字符集,如果mysql版本低於4.1,則不設置字符集信息
    }
 if(empty($dbcharset))
 {
  $dbcharset='gbk';
 }
    $dbcharset && mysql_query("set names '$dbcharset'");// 設置字符集
    if( mysql_get_server_info() > '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')
                {
                    $sql=preg_replace("/engine=myisam/is","type=myisam",$sql);//
                }
            }
            mysql_query($sql);
        }
    }
}

?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved