在非对象上调用成员函数bind_param()
我正在尝试在此准备好的语句中绑定变量,但我一直收到错误:
Call to a member function bind_param() on a non-object
调用该函数,并将变量传递给它。当我更改函数以仅回显变量时,该变量会在页面上正常打印,但是如果我尝试在此处绑定它,则会收到错误。有人可以帮忙吗?
//CALL FROM PAGE ONEcheck($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