【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太长,原因我就不说了,一个变量生存期问题。