@sandul23

Почему вместо значения запрос вернул true?

История такова,что решил я наконец прекратить писать легко ломающийся дерьмо-код и перейти с mysql на PDO с подготовленными запросами. Но как всегда,всё что может пойти не так,идёт не так. И почему я не знаю.
Суть в чём. Есть вот такие вот строчки кода:
$user_index = $db->prepare('SELECT * FROM `users` WHERE `login` = ":login" AND `password` = ":password" LIMIT 1');
$q = $user_index -> execute([':login' => $login,':password' => $password]);
$user = $q -> fetchAll();

Знаю,шифрование покинуло чат,но пока переписать всё на PDO бы для начала.
Так вот. У меня выдаёт при выполнении кода ошибку: "Fatal error: Call to a member function fetchAll() on a non-object in /home/***/domains/***/public_html/index.php on line 17"
Покопался в проблеме и в инете. Пробовал шаманить как только угодно,чуть-ли до танцев с бубном не дошло. Сделал отладку переменной $q и вуаля. Эта переменная равна true. А должна быть pdo каким-то там объектом,сказать честно,не особо углублялся в эту тему. А теперь внимание,вопрос. Почему оно является true ? Как понимаю, я ошибся с синтаксисом и оно делает не то,что задумывалось. Но опять же,не знаю что. Прошу тыкнуть носом в ошибку. Буду признателен.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.
https://www.php.net/manual/ru/pdostatement.execute.php

Ну есть же пример в документации, почему бы её не прочитать вместо танцев с бубном?
Ответ написан
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
$user_index->fetchAll();
и дальше забирайте из полей значения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы