利用.sql安装数据库(php168剥离)

本文介绍了一种优化的SQL脚本导入方法,该方法通过调整字符集设置、SQL模式及表类型来确保跨不同版本MySQL服务器的数据兼容性和高效导入。此外,还详细解释了如何处理注释行和特定于服务器版本的语法差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function into_sql($file){
 global $dbhost,$dbuser,$dbpw,$dbname,$db168,$dbcharset;
 mysql_connect($dbhost,$dbuser,$dbpw);
 mysql_select_db($dbname);
 if( mysql_get_server_info() < '4.1' ){
  $dbcharset='';
 }
 $dbcharset && mysql_query("SET NAMES '$dbcharset'");
 if( mysql_get_server_info() > '5.0' ){
  mysql_query("SET sql_mode=''");
 }
 $file2=readover($file);
 $file2=str_replace("p8_","$db168",$file2);
 if($dbcharset){
  //$file2=str_replace("TYPE=MyISAM"," ENGINE=MyISAM DEFAULT CHARSET=$dbcharset ",$file2);
 }
 $file2=explode("/n",$file2);
 $c1=count($file2);
 for($j=0;$j<$c1;$j++){
  $ck=substr($file2[$j],0,4);
  if( ereg("#",$ck)||ereg("--",$ck) ){
   continue;
  }
  $arr[]=$file2[$j];
 }
 $read=implode("/n",$arr);
 $sql=str_replace("/r",'',$read);
 $detail=explode(";/n",$sql);
 $count=count($detail);
 for($i=0;$i<$count;$i++){
  $sql=str_replace("/r",'',$detail[$i]);
  $sql=str_replace("/n",'',$sql);
  $sql=trim($sql);
  if($sql){
   if(eregi("CREATE TABLE",$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);
  }

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值