PHP调用mysqli::execute_query()报错:未定义方法的问题求助
解决mysqli::execute_query()未定义方法的问题
错误原因
mysqli::execute_query()是PHP 8.1版本才新增的方法,你的服务器PHP版本低于8.1,因此触发了这个致命错误。
解决方案
方案一:升级PHP版本到8.1及以上
- 检查当前PHP版本:在项目根目录新建
phpinfo.php文件,写入代码<?php phpinfo(); ?>,访问该文件即可查看当前PHP版本。 - 根据你的服务器环境(Apache/Nginx、Linux/Windows等),按照对应官方指引将PHP升级到8.1或更高版本。
方案二:兼容低版本PHP的替代写法
用传统的mysqli预处理语句流程替代execute_query(),适配你的modeloLogin.php逻辑的示例代码如下:
// 原报错代码示例(参考): // $result = $this->db->execute_query("SELECT * FROM usuarios WHERE email = ?", [$email]); // 替代的兼容写法: $sql = "SELECT * FROM usuarios WHERE email = ?"; $stmt = $this->db->prepare($sql); // 绑定参数:"s"代表字符串类型,参数类型可根据实际调整(i=整数、d=浮点数、b=二进制数据) $stmt->bind_param("s", $email); $stmt->execute(); // 获取查询结果集 $result = $stmt->get_result(); // 后续可通过$result->fetch_assoc()等方法处理数据 // 操作完成后关闭预处理语句释放资源 $stmt->close();
注意事项
- 两种方案都要确保参数绑定逻辑正确,避免SQL注入风险。
- 使用方案二时,记得在操作结束后关闭预处理语句,释放服务器资源。
内容的提问来源于stack exchange,提问作者Agustin Menendez
相关产品推荐
相关产品推荐

