2016-02-02 3 views
0

У меня есть этот код:Email проверка не работает должным образом

$checkDB = "SELECT email FROM users WHERE email='$email'"; 
$result = mysqli_query($conn, $checkDB); 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

if (mysqli_num_rows($result) == 1) { 
    $errorEmail = 'This email is registered m8'; 
    $mainError = true; 
} 

Таким образом, проблема в том, что он всегда говорит, что электронная почта зарегистрирована, даже если это не для проверки электронной почты (проверка электронной почты после проверки имен) , Я попытался изменить имена переменных, но он не работает.

$checkDB = "SELECT user_name FROM users WHERE user_name='$name'"; 
    $result = mysqli_query($conn, $checkDB); 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

    if (mysqli_num_rows($result) == 1) { 
     $errorName = 'Name registered'; 
     $mainError = true; 
    } 
+0

Email или имя пользователя уже существует в БД – devpro

+0

Как установить '$ email'? – Timo

+0

Не очищено u хотите напечатать ошибку имени сначала, чем ошибка электронной почты – devpro

ответ

0

mysqli_num_rows($result); проверяет количество строк найденного письма. И не ставьте mysqli_fetch_array($result, MYSQLI_ASSOC);. Я не знаю, почему, но его работа для меня.

Используйте этот код

$checkDB = "SELECT email FROM users WHERE email='$email'"; 
$result = mysqli_query($conn, $checkDB); 
$check = mysqli_num_rows($result); 

if ($check == 1) { 
    $errorEmail = 'This email is registered m8'; 
    $mainError = true; 
} 
+0

Что делает эта перестановка текущего кода? – Martin

+0

mysqli_num_rows ($ result); проверьте номера электронной почты. и не ставьте mysqli_fetch_array ($ result, MYSQLI_ASSOC); я не знаю почему, но его работа для меня –

0
  • Вы должны проверить, если она больше нулю
  • Fetching не нужно
  • Также в вашем stituation вы должны готовить свой Постулаты.

$checkDB = "SELECT email FROM users WHERE email= ?"; 
if ($result = mysqli_prepare($conn, $checkDB)) { 
    mysqli_stmt_bind_param($result, "s", $email); 
    mysqli_stmt_execute($result); 
    if(mysqli_num_rows($result) > 0){ 
     $errorName = 'Name registered'; 
     $mainError = true; 
    } 
} 
mysqli_close($conn); 
Смежные вопросы