我在使用PHP中的mysqli類時遇到了麻煩,而且我無法在任何地方找到答案。PHP mysqli重新連接問題
在我的腳本中,一個類創建一個mysqli連接,它在整個函數中使用它。之後,這個腳本分叉了。這個連接也是由孩子們使用的,但是當孩子死亡時,我遇到了父母關閉連接的問題(MYSQL Server Has Away)。
在我切換到mysqli(剛剛使用mysql)之前,我只是簡單地調用了mysql_ping,以確保在父進程中執行查詢之前數據庫連接已經存在。 Mysqli有一個類似的ping功能,但它實際上並沒有重新連接,如果連接不見了。我嘗試使用mysqli.reconnect = ON全局設置,但沒有運氣(使用php.ini和ini_set)。
php mysql_connect函數允許你獲取一個已經存在的連接,所以如果我使用的是mysql而不是mysqli,那麼我可以簡單地在子進程分叉後重新使用子連接。但mysqli似乎沒有任何這樣的功能...
我能做的唯一的事情就是調用mysqli-> ping(),如果返回false,則重新連接到父級數據庫。這是非常低效率,我寧願弄清楚如何正確使用mysqli(並且不需要手動重新連接)必須更改回mysql ..
有什麼建議嗎?
工作。我沒有意識到你不能使用ini_set來修改這個變量,並且作爲我的天才,我之前在php.ini中添加了這一行,不知道已經有一個mysli.reconnect = Offline文件。但刪除那個,只使用mysqli.reconnect工作,並使mysqli-> ping()執行就像mysql_ping。謝謝您的幫助! – 2009-09-24 16:43:36