今天 在我寫一個數據導入時出來了 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'],"<a href="".str_replace($spath,'',$rs['typedir'])."">".$rs['typename']."</a>",$tmpstr);
}
return $tmpstr;
}
從面代碼不仔細看是發現不了總是,我們看到
$os = autoaddlink( $os );
insert ....數據保存,
如果單獨不放在while循環是沒有任何問題的,如果放在可能就導入sql太長,原因我就不說了,一個變量生存期問題。