繁体   English   中英

严重错误:在非对象上调用成员函数bind_param()

[英]FATAL ERROR : Call to a member function bind_param() on a non-object

我尝试一些代码来使用PHP和slim框架构建RESTful API Web服务。 (我正在使用Advanced Rest Client测试此代码)

这是我的代码。

private function isUserExists($email) { $stmt = $this->conn->prepare("SELECT id from users WHERE email = ?"); $stmt->bind_param("s", $email); $stmt->execute(); $stmt->store_result(); $num_rows = $stmt->num_rows; $stmt->close(); return $num_rows > 0; }

然后我得到了这个错误。

致命错误:在第113行上的非对象上调用成员函数bind_param()

第113行是: $stmt->bind_param("s", $email);

从2周前开始,我一直在寻找解决方案。

谢谢大家:))

问题出在$this->conn->prepare ,它不会像您期望的那样返回对象。

对于mysqli, prepare()在错误时返回FALSE。 您可以使用$ this-> conn-> error检查错误消息。

如果失败,此代码应显示您的错误:

private function isUserExists($email) {
    $stmt = $this->conn->prepare("SELECT id from users WHERE email = ?");
    if ($stmt === FALSE){
        die($this->conn->error);
    } else  {
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $stmt->store_result();
        $num_rows = $stmt->num_rows;
        $stmt->close();
        return $num_rows > 0;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM