1

我是一个 pdo 新手,需要准备和执行一些 php/pdo 代码:此代码允许我在我的数据库中创建用户:

    // Perform Insert / Update
$STH = $dbh->prepare("INSERT INTO users (username, email) values (:username, :email)");
$STH->bindParam(':username', $username);
$STH->bindParam(':email', $email);
    try{
    $STH->execute();
    redirect_to(signupsuccess.php);
    }
catch(PDOException $e) {  
echo "I'm sorry, Dave. I'm afraid I can't do that.";  
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND); 
}
    }

但在我将该数据放入数据库之前,我需要进行检查以确保数据库中不存在电子邮件。我需要做一个选择,比如:

    $STH = $dbh->prepare("SELECT FROM users (email) values (:email)");
$STH->bindParam(':email', $email);
try{
    $STH->execute();
      }

我知道我需要添加

    "WHERE something matches '$_POST'email') something.." ...

在这一点上我完全迷失了..我可以在没有 PDO 的情况下做到这一点,但我想开始使用 PDO 的准备好的语句..请帮忙!

4

1 回答 1

0

只需做一个简单的选择。如果您可能有一个空电子邮件,我建议使用绑定值。

$STH = $dbh->prepare("SELECT email FROM users WHERE email = :email");
$STH->bindValue(':email', $email);
try{
    $STH->execute();
}

然后只需检查是否返回任何记录。如果是这样,请更新,不要插入。祝你好运。

于 2012-05-09T13:25:30.950 回答