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); } } } |