Файл functions.php
include __DIR__ . "/mysql.php";
function checkPassword($pass, $email){
$mysql = new Mysql();
$sql = "SELECT * FROM users where `email` = ':email' AND `password` = ':password'";
$params = [':email' => $email, ':password' => md5($pass)];
var_dump($mysql->query($sql, $params));
}
Функция query из mysql.php
public function query($sql, $params=[])
{
try {
$sth = $this->db->prepare($sql);
$sth->execute($params);
return $sth->fetchAll(PDO::FETCH_OBJ);
} catch (PDOException $e) {
echo 'Ошбика при выполнение запроса: ' . $e->getMessage();
}
}
Проверяю функцию в index.php
include(__DIR__. '/core/functions.php');
checkPassword('123123','qwe@mail.ru');
И он мне выводит просто:
array(0) { }
В указанных параметрах все правильно, проверил через phpMyAdmin там находит.
SELECT * FROM users where email
= 'qwe@mail.ru' AND password
= MD5('123123')
Вот скрин:
Попробовал изменить SQL запрос на такой:
$sql = "SELECT * FROM users";
И у меня все вывелось, вывел всех пользователей. Получается проблема где то с массивом $params или что-то другое, не могу понять...
:email и :password в sql запросе должны быть без кавычек
$sql = "SELECT * FROM users where `email` = :email AND `password` = :password";
Может быть проблема с MD5 ?
Ваш запрос в PHP
$sql = "SELECT * FROM users where email
= ':email' AND password
= ':password'"
А вот запрос в phpmyadmin:
SELECT * FROM users where email = 'qwe@mail.ru' AND password = MD5('123123')
попробуйте md5 убрать из параметров и вызвать внутри запроса:
$sql = "SELECT * FROM users where email
= :email AND password
= MD5(:password)";
Либо проверьте простой запрос с одним параметром для email
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени суток господаНужна ваша помощь в легкой задаче, увы, для меня из за нехватки опыта это оказалось сложным
CRITICAL - Fatal Error: Class AppBundle\Entity\User contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Symfony\Component\Security\Core\User\UserInterface::getRoles, Symfony\Component\Security\Core\User\UserInterface::eraseCredentials)