我正在尝试将我的登录脚本从 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。
变量 $email
和 $pasword
当我 echo
出来时是正确的,脚本使用 mysql_
函数。
$dbh
变量是在 header 中创建的,并且带有 $query ="select id where 1"
它按预期工作。
我确信(尽管可能是错误的)我已将问题缩小到脚本的 state->bindParam()
部分。我完全不知道为什么这部分脚本没有工作 热烈欢迎任何建议。
最佳答案
删除单引号 '
:
SELECT id FROM guests WHERE email=:eml AND password =:pwd
关于php - PDO 不绑定(bind)占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20496805/