检查数据库中已存在的电子邮件,但当前登录ID的电子邮件除外

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查数据库中已存在的电子邮件,但当前登录ID的电子邮件除外相关的知识,希望对你有一定的参考价值。

我想检查数据库表中是否存在电子邮件,不包括当前login_id的电子邮件。我在下面写了一个函数。我不知道如何使用PDO检查来自数据库的电子邮件。

public function updateEmail(passwordDto $password, PDO $connection){
        $pass = null;
        $pass= $password;

        $pass_id = $pass->getId();
        $Pass_user_id= $pass->getUser_id();
        $pass_email= $pass->getEmail();
        $pass_status = $pass->getStatus();

        try{
            $conn = $connection;
            $user_id = $_SESSION['user']; 

            $sql_email = "select email from tb_password where user_id <> $user_id  ";
            $email = $conn->prepare($sql_email);
            $email->execute();
            $emailarray= Array();
            while ($result =  $email->fetch(PDO::FETCH_ASSOC)) {
                $emailarray[] = array('email' => $result['email']);
            }


            if ( $result['email'] == $pass_email ){ 
                return -1;
            }else {
                $sql = "update tb_password set  email = '".$pass_email."' where user_id= '".$user_id."' AND id= '".$pass_id."' "  ;
                $conn->exec($sql);
                return 1;
            } 

        }catch (Exception $e){
            echo $e;
            throw $e;
        }

    }
答案

您可以使用以下命令执行rowcount:

$email->rowCount();

您应该将查询更改为:

SELECT email FROM tb_password WHERE email = $pass_email AND user_id != $user_id

然后,如果rowcount> 0,则电子邮件已存在。

以上是关于检查数据库中已存在的电子邮件,但当前登录ID的电子邮件除外的主要内容,如果未能解决你的问题,请参考以下文章

当前用户电子邮件 ID 未更新正确格式

SQLServer 报错:用户组或角色'XXX' 在当前数据库中已存在. 错误:15023解决方法

Firestore 覆盖 iOS Swift 中已存在的数据

Sqlserver用户组或角色在当前数据库中已存在

用户使用电子邮件而不是用户名登录。问题:通过电子邮件但检查用户名

检查Firestore中是否存在用户