Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/164.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
为什么使用MySQLi的代码会抛出一个PHP通知:试图获取非对象的属性_Php_Mysql - Fatal编程技术网

为什么使用MySQLi的代码会抛出一个PHP通知:试图获取非对象的属性

为什么使用MySQLi的代码会抛出一个PHP通知:试图获取非对象的属性,php,mysql,Php,Mysql,此代码正常工作,并按预期输出数组,但抛出以下错误消息: PHP注意:正在尝试获取非对象的属性 这是我的密码: $mysqli = new mysqli("localhost","user","pass","database"); $sql = "SELECT keyterm FROM keyterms"; $results = $mysqli->query($sql); while($result = $results->fetch_object()->keyterm)

此代码正常工作,并按预期输出数组,但抛出以下错误消息:

PHP注意:正在尝试获取非对象的属性

这是我的密码:

$mysqli = new mysqli("localhost","user","pass","database");
$sql = "SELECT keyterm
    FROM keyterms";
$results = $mysqli->query($sql);
while($result = $results->fetch_object()->keyterm)
    $keyterms[] = $result;
当结果集中没有更多结果时,将返回null,因此while循环的最后一次迭代将尝试访问null值上的
keyterm
属性

您应该将结果对象指定给
$result
,然后访问循环体中的属性,例如:

while($result = $results->fetch_object())
    $keyterms[] = $result->keyterm;

得到该警告是因为在检查光标是否返回有效对象之前查找属性。换句话说,在记录集耗尽的最后一次迭代中,您将有一个没有
keyterm
属性的空对象

while($result = $results->fetch_object())
    $keyterms[] = $result->keyterm;