Авторизация пользователей PHP
Есть база в которую я добавляю пользователей.
Код проверки пользователей при входе:
$result = $db->prepare("SELECT * FROM
users WHERE user_login = :l LIMIT 1");
$result->bindValue(":l", $l, PDO::PARAM_INT);
$result->execute();
$res = $result->fetch(PDO::FETCH_BOTH);
Проблема: Я добавляю пользоватей в базу mysql:
Id :1, login:root, pass:root
Id :2, login:admin, pass:admin
И так пользователь root войдет без проблем, но пользователь admin даже введя правильные данные войти не может! При этом если пользователя root удалить то пользователь admin сможет войти!
Тоесть код почему то проверяет только того пользователя у которого id меньше всех (который был создан раньше чем другие).
Проблема в том что скрипт выбирает одного пользователя и только последнего в базе (у которого id наименьшее число). Id пользователя генерируется сам! Все остальные получают ошибку пароля и логина!
Ответы (1 шт):
Замените PDO::PARAM_INT на PDO::PARAM_STR.
Очевидно, у вас user_login это строковое значение, а параметром PDO::PARAM_INT оно приводится к целому числу