2016-11-24 6 views
-1

この問題は複数のスレッドがあることを知っていますが、常に異なる原因があり、いずれも私と同じではありません。データベースから変数にアクセスするときに非オブジェクトのプロパティを取得しようとしています

私はデータベースから値にアクセスしようとしていますが、接続はうまくいきました。私はこのエラーをかなり数回受け取りましたが、これを変更するとの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()を呼び出します。 –

+0

これは正しいエラーです。* close()*は$ rowではなく* $ querycliente *に設定する必要があります。 。それはうまくいくはずです、あなたはエラー* precios.phpを26行目に持っています*おそらくそのコードではありません。そのコードの最後の行が20近くにあります – dwaskowski

-1

は、私は(一種の)今、それを考え出しました。コード

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

その方法:私は、私がアクセスしようとしたテーブルにレコードを...持っていないので、私はそれが「非オブジェクト」は言う、なぜまだない、ここで私はそれを解決したかどうかはわかりますそのエラーを得ていましたテーブルに値がアクセスしようとする前にレコードがあるかどうかを確認します

関連する問題