我正在尝试将我的登录脚本从 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
变量在标题中创建,$query ="select id where 1"
变量按预期工作。
我确信(虽然可能是错的)我将问题缩小到脚本的state->bindParam()
部分。我完全失去了为什么这部分剧本没有任何建议热烈欢迎。
答案 0 :(得分:9)
删除单引号 '
:
SELECT id FROM guests WHERE email=:eml AND password =:pwd
答案 1 :(得分:2)
您的查询将是
$query ="SELECT id FROM guests WHERE email=:eml AND password =:pwd AND lead_guest=17";
:eml
和:pwd
周围没有单引号。