所以我注意到,如果我多次为同一个查询mysqli_fetch_object($A)
调用$A
,我会收到此错误消息:
注意:尝试在[line]上的[file]中获取非对象的属性
例如,如果我这样做:
// This returns a single row
$A = mysqli_query($mysqli,"SELECT .. FROM ... WHERE ...");
echo mysqli_fetch_object($A)->item; // This works fine
echo mysqli_fetch_object($A)->item2; // Error on this line
我很好奇为什么你不能这样做,这是他们的具体原因吗?
注意:
我知道您可以通过执行以下操作来解决此问题:
$obj = mysqli_fetch_object($A);
echo $obj->item;
echo $obj->item2;
答案 0 :(得分:2)
查看php doc中的代码示例,我假设您没有更多行(在您的情况下只有一行),因此mysqli_fetch_object
返回NULL。
mysqli_fetch_object
每次调用时都不会获取同一行。它获取每个连续的行。如果你调用它一次,它会返回第一行,如果你调用它x次,它会返回第x行。
这就是文档示例有效的原因:
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
if ($result = $mysqli->query($query)) {
/* fetch object array */
while ($obj = $result->fetch_object()) {
printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
/* free result set */
$result->close();
}
如您所见,while运行[行数]周期。