2016-11-24 61 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; 
} 

这样的代码将试图访问它的值之前检查表上是否有任何记录

相关问题