@khodos_dmitry

Почему возникает ошибка Call to a member function fetch() on boolean?

Есть такой код:
$pdo_link->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
	$stm = $pdo_link->prepare("SELECT `id`, `name`, `url`, `address` FROM `cpl_offices` WHERE `url` LIKE ? AND `bank_id` IS NULL AND `mfo_id` IS NULL AND `del` IS NULL LIMIT ?, ?");
	$offices = $stm->execute([$url_like, $limit_from, $per_page]);
	while ($office = $offices->fetch()) {

Ошибка возникает там, где while.
Я скопировал данный запрос из логов и выполнил напрямую. Он выполняется нормально, возвращает много строк.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
Vlad_IT
@Vlad_IT
Front-end разработчик
Метод execute возвращает boolean, следовательно, в $offices булевое значение, а вы его пытаетесь вызвать как функцию.
Вот так должно работать

$pdo_link->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
  $stm = $pdo_link->prepare("SELECT `id`, `name`, `url`, `address` FROM `cpl_offices` WHERE `url` LIKE ? AND `bank_id` IS NULL AND `mfo_id` IS NULL AND `del` IS NULL LIMIT ?, ?");
  $stm->execute([$url_like, $limit_from, $per_page]);
  while ($office = $stm->fetch()) {
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Compolomus
@Compolomus
Комполом-быдлокодер
Лимит не попадает под подготовленные выражения
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ISS Москва
До 140 000 руб.
ООО РК Роял Набережные Челны
от 35 000 до 50 000 руб.
от 90 000 до 140 000 руб.
17 февр. 2019, в 21:01
50000 руб./за проект
17 февр. 2019, в 20:49
2000 руб./за проект
17 февр. 2019, в 20:47
100 руб./за проект