【www.gdgbn.com--mysql教程】

今天 在我写一个数据导入时出来了 mysql教程 server has gone away第一眼看上以为是数据库教程挂了,但其它正常,从网站找资料发现,原因是sql语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,仔细检测了sql语句如下:

while( $rs = mysql_fetch_array( $query ) )

{

$os = autoaddlink( $os );

  insert  ....数据保存,

}

函数如下

function autoaddlink( $str )
{
 $spath ="{cmspath}"; 
 $sql ="select typename,id,typedir  from 3g_arctype  where topid<>175";
 $query = mysql_query( $sql ) or die( mysql_error()) ; 
 $tmps教程tr = strtolower($str) ;
 
 while( $rs = mysql_fetch_array( $query ) )
 {
  $rs["typename"] = strtolower( str_replace("手机主题","",str_replace("主题","",str_replace("诺基亚","",$rs["typename"]))));   
  $tmpstr =str_replace($rs["typename"],"".$rs["typename"]."",$tmpstr);
  
 }
 return $tmpstr;
}

从面代码不仔细看是发现不了总是,我们看到

$os = autoaddlink( $os );

  insert  ....数据保存,

如果单独不放在while循环是没有任何问题的,如果放在可能就导入sql太长,原因我就不说了,一个变量生存期问题。

本文来源:http://www.gdgbn.com/shujuku/29294/