PDO在电子邮件检查中不断抛出错误?

时间:2013-10-17 07:55:42

标签: php sql

if(!empty($_POST['email'])) {
    $params = array( ':email' => $email );
    $sql = "SELECT `email` FROM `tablename` WHERE email = :email";
}

else return false;

$stmt = $user->query($sql, $params);
echo ( $stmt->rowCount() > 0 ) ? $exists = false : $exists = true;
if($exists) { header("Location:theurlifemailalreadyexists");  };
  

警告:PDOStatement :: execute()[pdostatement.execute]:   SQLSTATE [42000]:语法错误或访问冲突:1064您有   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本,在“@ gmail.com”附近使用正确的语法   第87行 * *中的第1行

我怎样才能让它停止扔那东西?它每次都会把它扔到电子邮件地址。

1 个答案:

答案 0 :(得分:3)

这是什么?

 SELECT `email` FROM `tablename` WHERE email = {$user->secure($_POST['email'])}
                                               ^

这应该是

SELECT `email` FROM `tablename` WHERE email = :email

由于您要替换的参数为:email

$params = array( ':email' => $email );