PDO没有约束占位符

Mar*_*ist 2 php mysql pdo prepared-statement

我试图将我的登录脚本从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();
Run Code Online (Sandbox Code Playgroud)

在它的当前状态,它将返回行数0(它不应该),我也尝试过

  //$state->bindParam(':eml',$email);
  //$state->bindParam(':pwd',$pasword);
  $state->execute($param2);
Run Code Online (Sandbox Code Playgroud)

它还返回0的行数.

当它们出来时变量$email并且$pasword是正确的echo,并且脚本使用mysql_函数完美地工作.

$dbh变量是在头创建,并用$query ="select id where 1"它按预期工作.

我确信(虽然可能是错的)我将问题缩小到state->bindParam()脚本的一部分.我完全失去了为什么这部分剧本没有任何建议热烈欢迎.

Mih*_*hai 9

删除单引号 ':

SELECT id FROM guests WHERE email=:eml AND password =:pwd
Run Code Online (Sandbox Code Playgroud)