我正在使用准备好的语句从 MySQL 数据库中检索一行,该语句在特定值等下运行良好(在 phpmyadmin 中测试)。
我经常<?php echo (htmlspecialchars($row_feed->f_text)); ?>在页面的第 400 行显示它,然后在第 900 行再次显示它(它是实际的复制粘贴)。第一个实例按预期显示结果,第二个实例抛出错误:
Uncaught Customizable_Exception: Trying to get property 'f_text' of non-object in C:\xampp\htdocs\bbto.eu\index.php:878
这怎么可能呢?我已经检查过,该$row_feed变量不会重复用于中间的其他内容,并且它在同一文件中的几行中工作正常。唯一的问题是第一个实例位于此循环内,while($row_feed = $feed->fetch_object()) { }而另一个实例位于循环关闭后,但从什么时候开始有任何影响呢?
最小可重现示例:
$sql = "SELECT * FROM feed";
$statement = $mysqli->prepare($sql);
if(!$statement->execute()) { die("Query error: ".$statement->error); }
$feed = $statement->get_result();
while ($row_feed = $feed->fetch_object()) {
echo (htmlspecialchars($row_feed->f_text));
}
### other stuff going on
echo (htmlspecialchars($row_feed->f_text));
我在第二次回显时收到错误。
慕仙森