2016-11-24 56 views
-1

我知道有多個線程存在此問題,但它們總是有不同的原因,它們都不是我的。嘗試從數據庫訪問變量時獲取非對象的屬性

我試圖從數據庫訪問值,連接是好的,我只是得到了這個錯誤不少,我已經通過改變fetch_object()fetch_assoc()(我不知道爲什麼的作品)。但這裏似乎沒有任何工作:

include 'structure.php'; 
include 'conexion.php'; 

$con = new conexion(); 
$bd = $con->conect(); 

$querycliente = $con->obtener('cliente'); 
$row = $querycliente->fetch_object(); 

$id_cliente = $row->id_cliente; 

$p_dom = $con->obtener('presupuesto', " cliente_id_cliente = '".$id_cliente."' AND servicio = 'dominio' "); 
$p_host = $con->obtener('presupuesto', " cliente_id_cliente = '".$id_cliente."' AND servicio = 'hosting' "); 
$p_correos = $con->obtener('presupuesto', " cliente_id_cliente = '".$id_cliente."' AND servicio = 'correos' "); 

$precio1 = $p_dom->fetch_object(); 
$precio2 = $p_host->fetch_object(); 
$precio3 = $p_correos->fetch_object(); 

我不斷收到此錯誤:試圖讓非對象的屬性在C:\ XAMPP \ htdocs中\ bootproject \ precios.php上線26(並在其他行中,我嘗試訪問數據庫中的值),它只能在$id_cliente = $row->id_cliente;第一次,所以爲什麼其他工作?

這是類和我使用的方法(至極,因爲我已經多次已經使用了他們在整個我的代碼的其餘工作正常):

class conexion{ 

    public $dbase; 

    function conect(){ 
     $this->dbase = new mysqli('xxxx', 'xxxx', 'xxxx','xxxx'); 
    } 

    function obtener($tabla, $where = ""){ 
     $where = ($where != "") ? 'WHERE '.$where: ''; 
     $query = $this->dbase->query('SELECT * FROM `'.$tabla.'` '.$where); 
     return $query; 
    } 
} 

希望能對你有所幫助,謝謝你期待。

回答

-1

use $ result-> close();更多的例子保存到文檔中MySQLi query function

$p_dom = $con->obtener('presupuesto', " cliente_id_cliente = '".$id_cliente."' AND servicio = 'dominio' "); 
$precio1 = $p_dom->fetch_object(); 
$p_dom->close(); 

$p_host = $con->obtener('presupuesto', " cliente_id_cliente = '".$id_cliente."' AND servicio = 'hosting' "); 
$precio2 = $p_host->fetch_object(); 
$p_host->close(); 
+0

我試過了,它仍然不起作用,它不斷給我同樣的錯誤 –

+0

另外,我試圖做「$ row-> close ();」它給了我這個錯誤:致命錯誤:未捕獲錯誤:調用未定義的方法stdClass :: close()in ... –

+0

這是正確的錯誤*因爲close()*應設置爲* $ querycliente *,而不是$ row 。這東西應該有效,你有錯誤* precios.php 26行*可能它不是代碼,因爲該代碼的最後一行接近20 – dwaskowski

-1

我現在(在某種程度上)想通了。我得到這個錯誤,因爲我曾在表中沒有記錄,我試圖訪問......不過不知道爲什麼,它說:「非目標」,這裏是我如何解決它:

if($p_dom->num_rows > 0){ 
    echo $precio1->precio; 
} 

這樣的代碼將試圖訪問它的值之前檢查表上是否有任何記錄

相關問題