Вы можете использовать встроенное выражение, чтобы назначить $row
и убедиться, что данные для этого запроса существуют, используя isset()
.
public function login($email, $password, $remember) {
$this->db->query('SELECT * FROM users WHERE email = :email');
$this->db->bind('email', $email);
if(isset(($row = $this->db->single()))) {
$password_hash = $row->password;
// Your logic
} else {
// Email did not exist
}
}
Если электронная почта не существует, $row
вернетсяпустой. PS В будущем я не буду выбирать *
в ваших запросах, выбирайте только то, что вам нужно.
В качестве альтернативы, вы, вероятно, хотите указать LIMIT
1.
public function login($email, $password, $remember = false) {
// If $this->db is a PDO instance
$stmt = $this->db->prepare('SELECT * FROM users WHERE email = ? LIMIT 1');
$stmt->execute(array($email));
if(isset(($row = $stmt->fetch()))) {
// Your logic
} else {
// Bad email
}
}