2016-09-08 19 views
0

script問題中,我可以做所有我想做的事情,除非證明數據庫中存在電子郵件。我知道我錯過了一些東西,留下了一些東西。在這個問題中,我只顯示不起作用的代碼。其餘的script工作。我認爲這個問題在if聲明中,但我似乎無法弄清楚。使用if語句在數據庫中創建證明數據的條件已存在

if(empty($_POST['email'])) 
{ 

    $query_email = " 
     SELECT 
     email 
     from users 
     where 
     email = :email 
    "; 

    $query_goes = array(

    ':email' => $_POST['email'] 

    ); 
    try 
    { 

     $stmt = $db->prepare($query_email); 
     $result = $stmt->execute($query_goes); 
    } 
    catch (PDOException $ex) 
    { 
     die("Failed to run query: " . $ex->getMessage()); 
    } 
    $row = $stmt->fetch(); 
    if($row) 
    { 
     die("This email is already in use..."); 
    } 

} 

} 
+0

所以,'的print_r($行)',你看到了什麼? –

+2

您正在運行查詢,如果它是空的!嘗試不是空'if(!empty($ _ POST ['email']))' – AbraCadaver

+0

我創建了一種管理用戶的方法。如果管理員想要更改地址。我希望腳本讓他們知道該電子郵件地址是否在系統中。當我添加名稱,姓氏等任何數據時,它已經存在錯誤輸出電子郵件。我在if語句中遺漏了一些東西。如果我將電子郵件更改爲新電子郵件,它就可以工作 - 沒有錯誤。 Array([email] => [email protected])發出此print_r($ row)後;這是我正在嘗試更新的人員的當前電子郵件地址。當然是假的。 – Grus

回答

0

更改您的代碼

if(!empty($_POST['email'])){ 
//... 
} 

這樣,你的if語句將被執行,因爲$ _ POST [ '電子郵件']是不是空的。

0

可能是你已經忘了結合

$stmt = $db->prepare($query_email); 
$stmt ->bindValue(':email',$_POST['email'], PDO::PARAM_STR); 
$result = $stmt->execute(); 
+0

它會採納您的建議並對我的代碼進行更改。我會讓你知道它是否有效。謝謝您的幫助。 – Grus

相關問題