一、软件版本
软件版本:phpstudy_pro V8.2.9;
二、错误描述
在编写完连接数据库,执行相关的操作的代码之后,在浏览器运行时报如下错误:
Fatal error: Uncaught Error: Call to a member function fetch_all() on bool in D:\phpstudy_pro\WWW\test2.cc\contact.php:77 Stack trace: #0 {main} thrown in D:\phpstudy_pro\WWW\test2.cc\contact.php on line 77
三、原因分析
这个错误是由于在调用 fetch_all() 方法时,尝试在一个布尔值(bool)上执行函数操作造成的。通常,这是因为在执行 mysqli_query() 查询时出现了问题,例如 SQL 查询语句有误或者数据库连接失败,导致查询结果为空或为 false。
比如我这里就是因为在编写查询语句时将自己在MySQL数据库中创建的字段"date"记成了“createdate”,导致了此错误的发生。
四、解决方法
1、检查 SQL 查询是否正确: 确保你的 SQL 语句没有语法错误。可以在执行查询前打印出 SQL 语句,并在数据库管理工具(如 phpMyAdmin)中运行,检查其是否能正确执行。
2、检查数据库连接: 确保在连接数据库时使用的用户名、密码、数据库名和主机地址都是正确的。如果数据库连接不成功,查询将返回 false。
3、使用错误处理: 在执行查询后,检查返回的结果是否为 false,并进行相应的错误处理。可以使用 mysqli_error() 获取详细的错误信息。
例如:
$result = $mysqli->query($query);
if (!$result) {
die("查询失败: " . $mysqli->error);
}
$data = $result->fetch_all(MYSQLI_ASSOC);
4、调试输出: 你可以在执行 fetch_all() 前先输出 $result 的值,检查它是否为 false 或一个有效的结果集对象。
标签:function,...,数据库,查询,result,SQL,mysqli,main,fetch From: https://blog.csdn.net/2301_77433128/article/details/141685822