2015-06-23 3 views
-2

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

$query = "SELECT * FROM userData WHERE email = '$email'"; 
    $result = mysql_query($query); 

, который работает прекрасно, когда пользователь вводит адрес электронной почты то есть в базе данных, однако, когда я хочу определить, является ли этот $ query пустой или пустой, я не уверен, какой из них.

Когда я вхожу письмо, которое не находится в базе данных и добавьте следующий код в поле ниже:

if(is_null($result)){ 
    echo 'email not in database'; 
    } 

код в {} не выполняется.

Мне просто интересно, можете ли вы мне помочь.

Привет снова,

Извините за дублирующий еще один пост. Я поправил его с помощью:

if(mysqli_num_rows($result) > 0) 
{ 
    // a row with email exists 
} 
else 
{ 
    // no row with particular email exists 
} 
+0

'mysql_query' возвращает выполняется ресурс запроса. Вы должны получать данные из ресурса или подсчитывать строки для этого. –

+1

Обязательные [не использовать mysql_ *] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1) функции, особенно если вы новый :), перейдем к чему-то лучшему сейчас и сэкономим несколько часов головной боли позже – MLeFevre

+0

Просто предупреждение, это уязвимо для [SQL injection] (https://en.wikipedia.org/wiki/SQL_injection) –

ответ

0

Попробуйте

$row = mysql_fetch_rows($result); 
if(!$row){ 
     echo 'email not in database'; 
} 

ИЛИ

$num = mysql_num_rows($result); 

if($num == 0){               
    echo 'email not in database'; 
    } 
0

Вы можете непосредственно проверить выполняется ли ваш запрос или не

if($result > 0){ 
    // perform some action 
} 

Вы должны использование m ysqli_ вместо mysql_ как он устарел и будет удален в будущем.

то, что вам нужно, это mysqli_num_rows(), чтобы увидеть, если по крайней мере одна строка была в таблице или нет

для справки - num_rows

if(mysqli_num_rows($result) > 0) 
{ 
    // a row with email exists 
} 
else 
{ 
    // no row with particular email exists 
} 
+0

Вы должны уточнить, что вы переходите от mysql к функциям mysqli (что правильно делать). –

+0

Редактирование ответов –

0

Вы можете попробовать это слишком!

if(empty($result)){ 
    echo 'email not in database'; 
} 

empty() будет проверять, если $result является null, или его значение 0, или если $result не существует.

Смотрите здесь: http://php.net/manual/fr/function.empty.php

Смежные вопросы