我的类中有这个函数或方法,但是当我向其中插入电子邮件时它不返回行数。我已经测试了 mysql 连接等,它们都在工作。另请注意,我通过该方法传递的电子邮件已存在于数据库中。我的计划是获取行数,如果它大于零,则意味着我们已经在数据库中有这封电子邮件。
public function userExist($email) {
$query = "SELECT email FROM " . USER_TABLE . " WHERE email = ?";
$stmt = $this->_db->prepare($query);
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$stmt->store_result();
return $stmt->num_rows;
}
return false;
}
最佳答案
我不知道如何将 pdo 与 mysqli 一起使用,但您想做的是使用 mysql 检查条目是否存在 EXISTS
函数,然后获取结果(总是 1 或 0)。
SELECT EXISTS(SELECT 1 FROM ".USER_TABLE." WHERE email = ?) as email_exists
在上面的查询中,email_exists
将是 1 或 0,具体取决于电子邮件是否已经在表中。
与 PDO
我会这样做:
$sth = $dbh->prepare("SELECT EXISTS(SELECT 1 FROM ".USER_TABLE." WHERE email = :email)");
$sth->execute(array('email' => $email));
return $sth->fetchColumn();
我会让你自己弄清楚如何在你自己的类(class)上做这件事。
关于php - 检查数据库中是否存在电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402427/