此代码有效,并按预期输出数组,但会抛出以下错误消息:
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;
答案 0 :(得分:6)
fetch_object()
将返回null,因此while循环的最后一次迭代将尝试访问空值上的keyterm
属性。
您应该将结果对象分配给$result
,然后访问循环体中的属性,例如:
while($result = $results->fetch_object())
$keyterms[] = $result->keyterm;
答案 1 :(得分:3)
$keyterms = array();
if ($results = $mysqli->query($sql))
{
while($obj = $results->fetch_object())
{
$keyterms[] = $obj->keyterm;
}
}
答案 2 :(得分:2)
您收到该警告是因为您在之前查找属性检查游标是否返回有效对象。换句话说,在记录集用尽的最后一次迭代中,您将拥有一个没有keyterm
属性的空对象。