[英]PDO not binding placeholders
我試圖將我的登錄腳本從mysql更改為PDO 。 對於我的其余部分,所有接縫都要遠離這些部分,我只是不明白為什么。
我有以下代碼
...
$pasword=md5($_POST['password']);
$email=$_POST['email'];
....
$query ="SELECT id FROM guests WHERE email=':eml' AND password =':pwd' AND lead_guest=17";
// $param2=array(':eml'=>$email,':pwd'=>$pasword);
$state=$dbh->prepare($query);
$state->bindParam(':eml',$email);
$state->bindParam(':pwd',$pasword);
$state->execute();
在它的當前狀態,它將返回行數0(它不應該),我也嘗試過
//$state->bindParam(':eml',$email);
//$state->bindParam(':pwd',$pasword);
$state->execute($param2);
它還返回0的行數。
當我echo
它們時,變量$email
和$pasword
是正確的,並且腳本使用mysql_
函數完美地工作。
$dbh
變量在頭文件中創建,並且$query ="select id where 1"
它按預期工作。
我確信(盡管可能是錯的)我將問題縮小到腳本的state->bindParam()
部分。 我完全失去了為什么這部分劇本沒有任何建議熱烈歡迎。
刪除單引號 '
:
SELECT id FROM guests WHERE email=:eml AND password =:pwd
您的查詢將是
$query ="SELECT id FROM guests WHERE email=:eml AND password =:pwd AND lead_guest=17";
沒有單引號:eml
和:pwd
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.