下面我有一個類函數將緩存的用戶信息,有什麼錯誤即時得到低於PHP變量不是一個數組
Warning: Variable passed to each() is not an array or object in C:\inetpub\wwwroot\application\base\classes\class.user.php on line 67
及以下的功能是。
public function cacheUserInfo() {
if (!$this->loggedIn())
return;
global $autoLoader;
$userQuery = $autoLoader->getLibrary('database')->query("SELECT motto,look,rank,last_login,block_newfriends FROM `users` WHERE `id` = '" . $_SESSION['user']['id']. "'");
$userRow = mysqli_fetch_array($userQuery);
while (list($var, $val) = each($userRow)) {
$_SESSION['user'][$var] = $val;
}
}
對數據庫庫的查詢功能就是MySQLi連接的 - > query($ sql)函數。
這是工作一秒現在它不... 爲什麼我得到這個錯誤?
'mysqli_fetch_array'返回數組或爲空,所以如果它不是一個數組,然後將查詢沒有返回任何結果。 –
我在您的查詢中看不到任何語法錯誤,所以我認爲最可能的解釋是'$ _SESSION ['user'] ['id']'未設置爲在用戶中具有匹配的id '表。 –
如果您不確定查詢是否返回任何內容,請嘗試'while($ userRow = mysqli_fetch_array($ userQuery)){/ * ... * /}'而不是使用'each()'。 – Mike