2015-06-23 165 views
-2

我有我检查,如果使用下面的代码在我的数据库中存在的用户的电子邮件一个简单的PHP文件:当用户输入一个电子邮件地址检查是否返回的值是空

$query = "SELECT * FROM userData WHERE email = '$email'"; 
    $result = mysql_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

Obligatory [不要使用mysql_ *](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1)函数,特别是如果你新的:),交换现在更好的东西,并保存自己的头痛后几小时 – MLeFevre

+0

只是一个警告,这是脆弱的[SQL注入](https://en.wikipedia.org/wiki/SQL_injection) –

回答

0

试试这个

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

OR

$num = mysql_num_rows($result); 

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

您可以直接检查你的查询是否通过

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

你应该执行或者不执行使用米ysqli_ 而不是mysql_因为它已被弃用,将来会被删除。

你需要的是mysqli_num_rows()看是否ATLEAST 1列在表或不

参考 - num_rows

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

你应该说明你正在从mysql切换到mysqli函数(这是正确的做法)。 –

+0

编辑我的答案 –

相关问题