Php:Call to a member function fetch_all() on bool in ... #0 {main} thrown in ... on line ...

一、软件版本

  软件版本: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 或一个有效的结果集对象。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值