龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

引起 MySQL server has gone away方法 与原因

时间:2011-03-14 23:24来源:未知 作者:admin 点击:
分享到:
今天 在我写一个数据导入时出来了 mysql教程 server has gone away第一眼看上以为是 数据库教程 挂了,但其它正常,从 网站 找资料发现,原因是sql语句太长,以致超过了max_allowed_packet的大

今天 在我写一个数据导入时出来了 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太长,原因我就不说了,一个变量生存期问题。

精彩图集

赞助商链接