首页 >后端开发 >php教程 >为什么我在 PHP 中收到'在非对象上调用成员函数准备()”错误?

为什么我在 PHP 中收到'在非对象上调用成员函数准备()”错误?

DDD
DDD原创
2024-11-28 11:45:14693浏览

Why Am I Getting the

PHP:解决“在非对象上调用成员函数prepare()”错误

在 PHP 中使用准备好的语句时,“在非对象上调用成员函数prepare()”错误表示数据库连接不正确或丢失。要解决此问题,请确保在函数中正确创建并可访问数据库连接。

在提供的示例中,发生错误是因为 $DBH 变量在 selectInfo() 函数中不可访问。这是由于范围可变。为了解决这个问题,我们有几个选项:

  1. 使用 global 关键字:

    • 通过在 $DBH 变量前面添加它来使 $DBH 变量成为全局变量与全局,允许函数访问它。但是,不建议这样做,因为它会污染全局命名空间。
  2. 将数据库连接作为参数传递:

    • 将 $DBH 变量作为参数传递给 selectInfo() 函数,确保其在函数内的可用性。这保持了变量局部性,但需要修改函数调用。
  3. 创建数据库连接检索函数:

    • 定义一个函数来检索数据库连接,使其可供需要它的函数使用。这封装了连接逻辑并避免引用全局变量。
  4. 实现数据库包装类:

    • 封装数据库访问在类中,提供一个接口来执行操作,而无需直接操作连接。这允许集中连接管理并简化数据库交互。
  5. 使用预构建的框架或库:

    • 利用已建立的框架或数据库访问库,它们提供了一种结构化且有效的方法来处理数据库连接和操作,包括准备好的

通过使用其中一种方法,您可以建立正确的连接并解决“在非对象上调用成员函数prepare()”错误,让您准备好的语句成功执行。

以上是为什么我在 PHP 中收到'在非对象上调用成员函数准备()”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn