我尝试使用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周前以来,我一直在寻找这个问题的解决方案。
先谢谢你们:))
答案 0 :(得分:1)
问题出在$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;
}
}