2016-12-10 28 views
0

我在我的腳本以下錯誤:試圖讓非對象的mysqli的屬性 - 變量

試圖讓行......非對象的屬性15

我知道爲什麼:我的數據庫表是空的,但這就是我想要的,直到用戶在網站上做了一些事情。所以我的問題是:我怎樣才能以不同的方式對這一行進行編碼,所以即使表格是空的,它也會繼續運行。

線15:

} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1) { 
    echo 'You have to wait '.$venter.' seconds'; 
} else { 

這是怎麼$radvent$queryvent分配:

$queryvent = db_query("SELECT * FROM `sperrer` WHERE `brukerid`='$id' AND `sperre`='utpressing'") or die('Error 1: '.mysqli_error()); 
$radvent = mysqli_fetch_object($queryvent); 

我感謝所有幫助。

回答

1

讓我們來看看這個。

的問題

  • 誤差

    試圖獲得非對象的屬性在........第15行

    裝置$radvent是不是一個對象。

  • 這意味着mysqli_fetch_object()沒有返回對象,因爲它返回NULL,因爲explained in the docs

  • 爲什麼mysqli_fetch_object()返回NULL?因爲數據集中沒有行。

  • 爲什麼數據集中沒有行?因爲你的桌子是空的,正如你在你的問題中所承認的那樣。

解決方案

檢查數據集是否是繼續之前空。一種方法是:

} elseif(!is_object($radvent)) { 
    // Oops! There's no data. Do something about that 
} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1){ 
    echo 'You have to wait '.$venter.' seconds'; 
} else { 

這不一定是最好的方法,這取決於您的實際代碼;這只是一個選擇。

+0

感謝您的回答,埃德。我試圖添加'} elseif(!is_object($ radvent)){'但它沒有幫助。我不應該添加我自己的東西。它只會檢查是否有任何數據,或者是否保持連續,讓用戶做些什麼。我必須在我的代碼中選擇一個用戶可以完成的任務,當他們完成了其中的一個時,它會將信息添加到數據庫中。還有我的查詢和$ radvent進來的地方。但是不管怎樣,db數據庫表都是空的。這是一個大問題。說起來容易一些,如果db在** sperrer中有一個tabel,那麼函數將會關閉** – Xp0sed

+0

@ Xp0sed恐怕我不太瞭解你的評論。你的意思是「它沒有幫助?」發生了什麼?你的意思是「我不應該添加我自己的東西?」 –

+0

@DawidFerenczy我剛剛刪除了我的答案部分;無論如何,我的測試代碼中有一個錯誤,這是一個非常挑剔的問題。 –