2009年4月21日 星期二

mysql中,使用pconnect防止過期的方法-- 以CodeIgniter為例

mysql的pconnect是節省資源的好方法。
但是在使用起來,timeout的問題卻是最討人厭,有時候要等待其它的api或是網外資料,等個20秒就過期了。

這是在進行查詢之前,先行下這一段,即可解決過期的問題。 

if(!mysql_ping($this->db->conn_id)){   //預設會重新連線,但pconnect不會,你只會知道連線不成功。
    @mysql_close($this->db->conn_id);  //先關閉 連線
    $this->db->conn_id=$this->db->db_pconnect();  //再重新連線一次
    $this->db->db_select();  //要先select database
}

上述是以CodeIgniter為例,不用framework的概念也是差不多的。
請不要預設每次查詢都下這一段,速度會很慢。
應該是特殊情況才使用。