亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

致命錯誤:對非對象上的成員函數FETCH_Assoc()的調用

致命錯誤:對非對象上的成員函數FETCH_Assoc()的調用

萬千封印 2019-06-25 15:34:55
致命錯誤:對非對象上的成員函數FETCH_Assoc()的調用我正在嘗試執行一些查詢,以獲得有關某些圖像的一頁信息。我寫了一個函數function get_recent_highs($view_deleted_images=false){     $lower = $this->database->conn->real_escape_string($this->page_size * ($this->page_number - 1));     $query = "SELECT image_id, date_uploaded FROM `images` ORDER BY ((SELECT SUM( image_id=`images`.image_id ) FROM `image_votes` AS score) / (SELECT DATEDIFF( NOW( ) , date_uploaded ) AS diff)) DESC LIMIT " . $this->page_size . " OFFSET $lower"; //move to database class     $result = $this->database->query($query);     $page = array();     while($row = $result->fetch_assoc())     {         try         {             array_push($page, new Image($row['image_id'], $view_deleted_images));         }         catch(ImageNotFoundException $e)         {             throw $e;         }     }     return $page;}根據它們的受歡迎程度來選擇這些圖像的頁面。我寫了一個Database類處理與數據庫和Image類,該類保存有關圖像的信息。當我試圖運行它時,我會得到一個錯誤。Fatal error: Call to a member function fetch_assoc() on a non-object$result是一個mysqli結果集,所以我很困惑為什么這個結果不起作用。
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這是因為查詢中有一個錯誤。MySQli->query()錯誤時將返回false。將其更改為如下所示:

$result = $this->database->query($query);if (!$result) {
    throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}");}

如果有錯誤的話應該會拋出一個異常.。


查看完整回答
反對 回復 2019-06-25
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

查詢很可能失敗,查詢調用返回布爾值false(或某種錯誤對象),然后嘗試將其用作結果集對象,從而導致錯誤。試著做些類似的事情var_dump($result)看看你到底得到了什么。

每次數據庫查詢調用后檢查錯誤。即使查詢本身在語法上是有效的,仍然有太多的原因導致它失敗-每次檢查錯誤都會在某種程度上為您節省很多麻煩。


查看完整回答
反對 回復 2019-06-25
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

我碰巧錯過了查詢中的空格,出現了這個錯誤。

Ex: $sql= "SELECT * FROM";$sql .= "table1";

雖然示例看起來很簡單,但在編寫復雜查詢時,出現此錯誤的概率很高。我錯過了單詞“表1”之前的空格。


查看完整回答
反對 回復 2019-06-25
  • 3 回答
  • 0 關注
  • 920 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號