php - 检查数据库中是否存在电子邮件?

标签 php mysqli prepared-statement php-5.3 mysql-num-rows

我的类中有这个函数或方法,但是当我向其中插入电子邮件时它不返回行数。我已经测试了 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/

相关文章:

php - 使用 PHP 和 HTML 显示 MYSQL 数据

php - <选择> 默认值

php - 使用 PHP7 MySQLi 准备语句将 BIT(M) 列值插入 MySQL5.7

java - PDF 抓取 -> MS Access

java - 在 Java 中执行 SQL 批量更新,如果传入的 parm 为 null,则不会更新字段

php - "standard"时区缩写是什么?

php - 从 PHP 中的 CSV 文件中删除当前迭代行

php - 如何检查没有。使用 MYSQLI_STMT_PREPARE 和 MYSQLI_FETCH_ARRAY 时返回的行数?

php - MySQL准备语句,写入多行

php - "SQLSTATE[HY000]: General error"- 一条语句中的多个 SQL 查询