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

被折叠的 条评论
为什么被折叠?



