我在实现注册表时遇到问题。我的php脚本应检查用户电子邮件是否已被使用。 如果电子邮件正在使用中,php脚本应显示错误消息,如果不是注册成功完成。
$email = $_POST['email'];
try{
$sql = "SELECT count(mail) FROM user WHERE mail = '$email'";
$result = $pdo->exec($sql);
}catch(PDOException $e){
echo $e;
exit(); }
if($result == 0){
//registration complete }
else{
//email already in use }
我的问题是,如果电子邮件已经在数据库中,我也总是获得0。但是,如果我在我的xampp'服务器中执行该sql代码,我获得1,这样代码就能完美运行。
感谢所有人的帮助:)
答案 0 :(得分:1)
你需要这样做:
$email = $_POST['email'];
try{
$sql = "SELECT mail FROM user WHERE mail = :email";
$sql = $pdo->prepare($sql);
$sql->execute(array(':email'=> $email));
}catch(PDOException $e){
echo $e;
exit(); }
if($sql->rowCount() == 0){
//registration complete }
else{
//email already in use }