当前位置: 首页 > 面试题库 >

在非对象上调用成员函数bind_param()

宓英哲
2023-03-14
问题内容

我正在尝试在此准备好的语句中绑定变量,但我一直收到错误:

Call to a member function bind_param() on a non-object

调用该函数,并将变量传递给它。当我更改函数以仅回显变量时,该变量会在页面上正常打印,但是如果我尝试在此处绑定它,则会收到错误。有人可以帮忙吗?

//CALL FROM PAGE ONE
check($username);

//FUNCTION ON PAGE 2
function check($username){
$DBH = getDBH();
$qSelect = $DBH->prepare("SELECT * FROM users WHERE username = ?");
$qSelect->bind_param("s", $username);
}

我知道函数没有完全写在这里,但这不应该是一个问题。我不明白为什么我会收到此错误。


问题答案:

正如错误消息所说,这$qSelect似乎不是一个对象。尝试var_dump($qSelect);在您的prepare-
call之后使用来调试它。还检查是否getDBH()返回您需要的东西。

听起来好像prepare-call失败了(不知道为什么),所以它返回false-
false不是对象,所以您不能调用bind_param()它。

编辑:
您尚未提供该信息,但似乎您正在使用PHP的PDO。

如果数据库服务器成功准备了该语句,则PDO :: prepare()返回PDOStatement对象。如果数据库服务器无法成功准备该语句,则PDO ::
prepare()返回FALSE或发出PDOException(取决于错误处理)。

您应该将服务器配置为返回那些PDO异常,这将告诉您为什么prepare调用失败。



 类似资料:
  • 问题内容: 因此,我正在重构代码以实现更多的OOP。我设置了一个类来保存页面属性。 稍后,我像这样调用set_page_title()函数 当我收到错误消息时: 调用非对象上的成员函数set_page_title() 那我想念什么呢? 问题答案: 这意味着它不是对象的实例。我们可以看到您用来初始化变量的代码吗? 当您期望特定的对象类型时,还可以使用PHP的类型提示功能 Docs 在违反逻辑时得到错

  • 问题内容: 此代码 出现错误 : 致命错误:在第42行的C:\ Users \ fel \ VertrigoServ \ www \ login \ validation.php中的非对象上调用成员函数prepare() 码: 可能的原因是什么? 另一个问题 是什么?抱歉,我是pdo的新手 问题答案: 未定义。您没有在函数内部声明它,也没有将其作为参数传递。 您需要将其传递(好),或在全局名称空间

  • 问题内容: 我的查询有问题。我最近改用了PDO,这对我来说是新的。现在,我需要在查询中使用JOIN来从另一个表中获取数据,而无需执行两次执行。 问题是,我收到此错误: 我不明白问题是什么。这是我的代码的样子: 或简称为查询: 我想要的是,从用户ID为session且请求为0的朋友那里获取所有行。但是然后我想获取用户中那些朋友的ID,以便我可以链接到他们的个人资料。注意 感谢您提供任何反馈意见,不必

  • 问题内容: 我正在尝试编写一个PHP函数。这很简单。这只是一个查询数据库的准备好的语句,但是我无法使它正常工作。我一直收到非对象上的错误消息,调用成员函数prepare()。这是代码: 每当我调用该函数时,都会收到该错误。有人可以帮忙吗? 问题答案: 这是一个范围错误。您正在创建一个全局变量。因此,当您输入函数时,全局变量不可用。您有5个真实选择。 1.使用全局关键字 这不是一个好主意,因为它使维

  • 问题内容: 我正在尝试执行一些查询以获取有关某些图像的信息页面。我写了一个函数 根据这些图片的受欢迎程度选择页面。我已经编写了一个处理与数据库交互的类,并保存了有关图像的信息。当我尝试运行此程序时,出现错误。 是mysqli结果集,所以我对为什么它不起作用感到困惑。 问题答案: 那是因为您的查询中有错误。 错误时将返回false。将其更改为: 如果有错误,那应该抛出异常…

  • 请帮帮我 致命错误:在第104行的/home/u357965800/public_html/include/class.admin.php中对非对象调用成员函数prepare()