2016-09-08 20 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

相关问题