Я пытаюсь изменить свой сценарий входа из 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
верны, когда я их выхожу, и скрипт отлично работает с использованием функций 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
.