我遇到以下错误Call to a member function bind_param() on a non-object
并且从研究中意识到我需要在我的prepare语句中添加错误检查,因为它可能返回false。
因此我有了这个 - >
if ($statement = $this ->conn->prepare("INSERT INTO users(name, email, gender, usrDOB, encrypted_password, salt, created_at) VALUES(?,?,?,?,?,?,NOW())")) {
$statement->bind_param("ssssss", $name, $email, $gender, $usrDOB, $encryptedPassword, $salt);
$result = $statement->execute();
$statement->close();
if ($result) {
$statement = $this->conn->prepare("SELECT * FROM users WHERE email =?");
$statement->bind_param("s", $email);
$statement->execute();
$user = $statement->get_result()->fetch_assoc();
$statement->close();
return $user;
} else {
return false;
}
}else{
printf($this->conn->error());
}
然而,在打印出错误()时似乎有一个错误,因为它表示它没有被定义。
我试过没有$ this的conn,但无济于事。
任何想法?
答案 0 :(得分:0)
如果语句失败,您可以打印错误:
$statement->execute();
if ($statement->error) {
var_dump($statement->error);
}
答案 1 :(得分:0)
我通过this url使用答案主题底部附近的错误检查解决了问题。
gradle