簡體   English   中英

PDO沒有約束占位符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM