2013-10-28 56 views
0

我沒有收到任何錯誤消息,但我也沒有從這個查詢中得到任何結果。我只是想獲得與提供的電子郵件相關的密碼哈希值。我究竟做錯了什麼?PDO fetch()沒有錯誤,但沒有結果

$selectEmailStmt = $DBH->prepare("SELECT passHash FROM userbasicinfo WHERE email=?"); 
$selectEmailStmt->bindParam(1, $email); 
$email = $_POST['email']; 
$selectEmailStmt->execute(); 
$selectEmailStmt->setFetchMode(PDO::FETCH_ASSOC); 
$result = $selectEmailStmt->fetch(); 


echo $result; 
+1

您需要/聲明'$ email = $ _POST ['email'];'頂部 –

+3

否...不,您不要@ Fred-ii-參數通過引用傳遞。 – Neal

+1

@尼爾哦,怎麼樣?由於'$ selectEmailStmt-> bindParam(1,$ email);'和'$ email = $ _POST ['email'];''你會認爲'$ email'沒有被聲明,在它下面。 –

回答

0

沒有錯誤

的錯誤不會只是單獨出現。你必須配置你的環境來報告它們。
在這裏你的代碼被無用的語句取代,並添加錯誤報告。

ini_set('display_errors',1); 
error_reporting(E_ALL); 
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "SELECT passHash FROM userbasicinfo WHERE email=?"; 
$pass = $DBH->prepare($sql)->execute([$_POST['email']])->fetchColumn(); 
var_dump($pass, $_POST['email']); 

如果仍然沒有結果 - 那麼表中沒有這樣的電子郵件。

+0

我用這段代碼,它返回了沒有問題的散列。我仍然不明白爲什麼我的工作不正常。 – steele

+0

將錯誤報告部分添加到您的代碼並查看 –

相關問題