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

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

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调用失败。

以上是 在非对象上调用成员函数bind_param() 的全部内容, 来源链接: utcz.com/qa/400443.html

回到顶部