我有一個很好的函數叫做lnk(),我已經用了很長時間連接到MySQL。 最近,我決定添加mysqli_ping調用來檢查連接,並在需要時重新連接,因爲我經歷了一個守護進程(24/7全天候運行)的問題,該守護進程在長時間不活動之後不斷失去與MySQL的連接。mysqli_ping break mysqli_multi_query
實施後,我開始有多個查詢問題。 如果在mysqli_multi_query之後發送ping,那麼在發送ping命令時,連接到MySQL將丟失,除非在ping之前發現mysqli_store_result。
$mq = mysqli_multi_query(lnk(), "SHOW PROCESSLIST;");
mysqli_next_result(lnk());
$result = mysqli_store_result(lnk());
while($row = mysqli_fetch_row($result)) {
print_r($row);
}
任何想法爲什麼會發生這種情況?
請不要在這些情況下向庫中添加一個變量來忽略連接檢查。我已經想到了,這還不夠好。我需要確切地知道爲什麼會發生這種情況,以及ping在這種情況下對我的連接做了什麼。
您可能需要在各種調用中重複使用相同的'$ link'。如果連接在'mysqli_multi_query'和其他連接之間重置,'lnk()'會給你一個新的連接......這反過來打破了'mysqli_next_result'。 – EthanB
休息發生在ping不在next_result。 – transilvlad
無論如何,我認爲你應該可以在不同的功能中重複使用相同的鏈接值。 – EthanB