我想改變我的腳本日誌從mysql到PDO。 對於我的腳本的其餘部分,所有接縫都要從這些部分分開,我簡直不知道爲什麼。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.
變量$email
和$pasword
是正確的當我echo
他們出來,並且該腳本完美使用mysql_
函數。
$dbh
變量是在標題中創建的,並且$query ="select id where 1"
按預期工作。
我確信(雖然可能是錯誤的),我將問題縮小到腳本的state->bindParam()
部分。我完全失去了爲什麼這部分腳本沒有得到任何建議的熱烈歡迎。
只用MD5散列密碼是不夠的;使用[強密碼散列算法](http://php.net/password)。 –
嘿,至少用PHP準備語句的問題開始出現在stackoverflow上,或者它只是我的印象。 – Mihai
@Mihai即使每個小時我都會看到SQL注入漏洞。 –