2015-06-23 213 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

編輯我的答案 –

相關問題