首页 >后端开发 >php教程 >为什么我的 PDO 代码中出现'在非对象上调用成员函数Prepare()”?

为什么我的 PDO 代码中出现'在非对象上调用成员函数Prepare()”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-19 19:36:03768浏览

Why Am I Getting

在非对象上调用成员函数Prepare:原因和解决方案

当尝试使用对象的prepare()方法时PDO 对象,可能会发生错误:“调用非对象上的成员函数prepare()”。此错误表明 $pdo 对象在导致问题的函数内未正确初始化。

在提供的代码片段中,repetirDados() 函数未声明 $pdo 对象或将其作为参数传递。要解决此错误,您可以:

  • 将 PDO 对象作为参数传递:
    修改函数定义以包含 $pdo 对象作为参数,确保它在调用时被传递到函数中。
  • 全局声明 PDO 对象:(不是推荐)
    可以在全局命名空间中声明 $pdo 对象,并通过添加 global $pdo 使其可供函数访问;在函数的开头。但是,这种方法不是首选,因为如果其他代码访问相同的全局变量,它可能会导致潜在的冲突。

MySQL 函数的 PDO 等效项

您还询问了 MySQL 函数 mysql_num_rows 的 PDO 等效项。 PDO 提供了一种名为 rowCount() 的替代方法,它具有相同的目的。它在执行查询后返回结果集中受影响的行数。

在代码中,您可以使用 $stmt->rowCount() 而不是 $results == 0 来检查是否有任何行被由查询返回。

以上是为什么我的 PDO 代码中出现'在非对象上调用成员函数Prepare()”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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