php проверяет дубликат строки электронной почты - PullRequest
1 голос
/ 21 апреля 2011

У меня небольшая проблема с проверкой дубликата электронной почты, я не знаю, что я сделал не так. PHP SIDE:

// convert to lower case
$email = $db->real_escape_string(trim(strtolower($_POST['email'])));

$q = $db->query("SELECT email FROM user WHERE email='$email'");
$r = $q->fetch_assoc();
if($email == $r['email']) {
   echo 'yes';
} else {
   echo 'no';
}

У меня есть старая запись в базе данных. Некоторые письма сочетаются с прописными и строчными буквами! И большинство из них от учетной записи электронной почты hotmail! Как проверить электронную почту, которая даже содержит строчные и прописные буквы?

ie: Donald1990@hotmail.com // it skips the duplicate error?
    Hedmunds@hotmail.co.uk
    hedmunds@hotmail.co.uk

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

На самом деле я думаю, что вы хотите

"SELECT LOWER(email) FROM user WHERE LOWER(email)='$email'"

1 голос
/ 20 марта 2016

Я использую Laravel 5, но концепция та же

// проверка от 1 до 500 записей, для некоторых БД истечет время ожидания, если от 1 до 5000 и более зависит от количества данных, вам может потребоваться увеличить предел времени ожидания

$users = Subscribers::all(); // take all users from DB

for ($x = $check_from; $x <= $check_to; $x++){
 $check_user  = Subscribers::select('id','email')->where('id',$x)->first();

        if (!isset($check_user)){ // check for gaps in betw records
            echo $x . "- not set<br>";  
        } 
        else{
            $check_user_id      = strtolower(trim($check_user->id));
            $check_user_email   = strtolower(trim($check_user->email));
            foreach ($users as $user){
                $user_id = strtolower(trim($user->id));
                $user_email = strtolower(trim($user->email));


                if ($check_user_email == $user_email AND $check_user_id !== $user_id ){
                    echo $check_user_id.' - '.$user_id.' - '. $user_email.' - Duplicated records<br>';

//$user->delete();
// choose to delete duplicate or whatever u wanna do with it
                    } 
                }                
            }
        }

// необходимо проверить, что адрес электронной почты равен && user_id не совпадает, тогда будет 2 идентификатора с тем же адресом электронной почты Мой код работает, но если кто-то сможет его улучшить, то будет короче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...