2014-10-27 102 views
0
if($_POST["type"] == "checkEmail") 
     { 
       $sql = "SELECT * FROM `user` WHERE user_email=:email"; 
       $statement = $mysql->prepare($sql); 

       $email = $mysql->quote($_POST["email"]); 
       $statement->execute(Array(":email"=>$email)); 
       $re = $statement->fetchAll(); 
       if(1) 
       print_r(json_encode($re));//echo json_encode("Sorry,Some has tood that good e-mail:<"); 
       else 
       print_r(json_encode($re)); 
     } 

我試圖使用查詢功能,它的工作!但準備功能不起作用!PDO,準備使用

+1

爲什麼使用嵌套的'如果-else'塊? – hjpotter92 2014-10-27 16:31:46

+0

當你說準備不起作用時,它是否返回'false'?檢查:http://uk3.php.net/pdo.errorInfo – 2014-10-27 16:32:59

+0

不要' - >引用()'你的價值觀。 DB /準備好的聲明已經爲您處理。你會基本上雙引號。 – 2014-10-27 16:35:17

回答

1

不要使用 - > quote(), - > prepare()已經這樣做了。

if($_POST["type"] == "checkEmail") 
    { 
      $sql = "SELECT * FROM `user` WHERE user_email=:email"; 
      $statement = $mysql->prepare($sql); 

      $email = $_POST["email"]; 
      $statement->execute(Array(":email"=>$email)); 
      $re = $statement->fetchAll(); 
      if(1) 
      print_r(json_encode($re));//echo json_encode("Sorry,Some has tood that good e-mail:<"); 
      else 
      print_r(json_encode($re)); 
    } 

如果這不是問題,那麼你或許應該張貼你得到的錯誤:

if($statement->execute(Array(":email" => $email))) { 
    // your code 
} else { 
    print_r(json_encode($statement->errorInfo()); 
}