Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库访问变量时尝试获取非对象的属性_Php_Mysql_Mysqli - Fatal编程技术网

Php 从数据库访问变量时尝试获取非对象的属性

Php 从数据库访问变量时尝试获取非对象的属性,php,mysql,mysqli,Php,Mysql,Mysqli,我知道这个问题有多个线程,但它们总是有不同的原因,而且没有一个和我的相同 我试图从数据库中访问一个值,连接很好,我只是多次遇到这个错误,我通过更改fetch\u object()的fetch\u assoc()(我不知道为什么会这样做)。。但在这里似乎什么都不起作用: include 'structure.php'; include 'conexion.php'; $con = new conexion(); $bd = $con->conect(); $querycliente =

我知道这个问题有多个线程,但它们总是有不同的原因,而且没有一个和我的相同

我试图从数据库中访问一个值,连接很好,我只是多次遇到这个错误,我通过更改
fetch\u object()
fetch\u 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();
我经常遇到这样的错误:试图在第26行(以及我试图从数据库中访问值的其他行)的C:\xampp\htdocs\bootproject\precios.php中获取non-object的属性,它只在
$id\u cliente=$row->id\u cliente中第一次起作用,那么为什么其余部分不能工作呢

这就是我正在使用的类和方法(它工作得很好,因为我在剩下的代码中已经多次使用它们):

希望您能提供帮助,谢谢您的期待。

使用$result->close()更多示例进入文档

我现在(有点)明白了。我得到那个错误是因为我试图访问的表中没有记录。。。仍然不确定为什么它会说“非对象”,下面是我如何解决它的:

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

这样,在尝试访问表的值之前,代码将检查表中是否有任何记录

我尝试了它,但它仍然不起作用,它一直给我相同的错误。此外,我尝试执行“$row->close();”,它给了我以下错误:致命错误:未捕获错误:调用未定义的方法stdClass::close()在…中,这是正确的错误,因为close()应该为$queryclient设置,而不是为$row设置。这些东西应该可以工作,您在第26行有错误precios.php,可能不是这段代码,因为代码的最后一行在第26行附近,我试图使用echo$precio1->precio;从数据库访问值。。。我现在(有点)明白了。我得到这个错误是因为我试图访问的表中没有记录。。仍然不确定为什么它会说“非对象”,但现在可以了。。。谢谢你@dwaskowski
$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();
if($p_dom->num_rows > 0){
     echo $precio1->precio;
}