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

问题描述 投票:-1回答:1

我想检查数据库表中是否存在电子邮件,不包括当前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;
        }

    }
php mysql pdo
1个回答
-1
投票

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

$email->rowCount();

您应该将查询更改为:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.