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

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

Mary-Kate Olsen
发布: 2024-11-19 19:36:03
原创
794 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板