我想將下面的代碼存儲到一個會話中的獲取數據數組,但是當我嘗試執行它時,執行時間超過30秒,並且失敗。 我似乎無法發現錯誤,所以我希望能有所幫助。執行時間超過
public function stat_query($user_id = null)
{
$query = $this->core->conn->query("SELECT user_stats.value as value, stats.shortname as shortname FROM user_stats INNER JOIN stats ON user_stats.stat_id = stats.id WHERE user_stats.user_id = ".$this->get_user($user_id));
$value = $query->fetch(PDO::FETCH_ASSOC);
return $value;
}
public function init_stat_array($user_id = null){
while($query = $this->stat_query($this->get_user($user_id))) {
$this->temp_array[$query['shortname']] = $query['value'];
}
}
public function store_session($user_id = null) {
$this->init_stat_array($this->get_user($user_id));
$_SESSION['stats'] = $this->temp_array;
}
注意:get_user函數按預期工作,它只是返回在構造函數中綁定的用戶或輸入的用戶。
如果你的數據庫中存在的用戶ID這將是一個inifinite循環 –
'而($查詢= $這個 - > stat_query($這個 - > GET_USER($ USER_ID)) ){'這看起來像是循環中無限循環地執行的查詢。只要一行被返回,循環就會一直持續下去。當呼叫完成時,'$ query'中包含了什麼? –
你的意思是'foreach($ this-> stat_query(...)as $ row)'而不是當我猜 –