为什么使用MySQLi的代码会抛出一个PHP通知:试图获取非对象的属性
此代码正常工作,并按预期输出数组,但抛出以下错误消息: 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)
$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;