你是不是在采集和入库时遇到过mysql gone away的错误? 这次做自己的站,第一次用ECMS,我在远程保存flash时和采集过程中遇到多次这种错误,在郁闷了一天后,终于找到办法,不敢独享,发给大家。 修改e/class/db_sql.php文件 把 function query($query) { $this->sql=mysql_query($query) or die(mysql_error().'<br>'.str_replace($GLOBALS['dbtbpre'],'***_',$query)); return $this->sql; } 换成 function query($query) { global $link; if(!mysql_ping($link)){ db_close(); //注意:一定要先执行数据库连接关闭,这是关键 $link = db_connect(); } $this->sql=mysql_query($query) or die(mysql_error().'<br>'.str_replace($GLOBALS['dbtbpre'],'***_',$query)); return $this->sql; } 因为在采集时遇到连接慢或文件大的情况下,mysql连接被闲置,等到采集完成或文件保存完后要写入数据库时,mysql连接失效,而mysql不会自动重新连接,所以会出现错误,那么当检测到mysql连接失效时,只要把mysql连接关闭,再重新连接就可以了。 没有多做测试,不过原理肯定是没问题的,希望对大家有帮助。 ------------------------------------------------ 另WM老大的程序真的写得不错,本来做这个站是想自己写的,因为用过不少cms,用起来不太爽,这次用ECMS,基本只修改了很少的地方就达到自己的要求了,在这里赞一个! 希望能在细节和用户体验方面能再加强下,毕竟很多人都是不懂程序的。
|