Задать вопрос
@Xen_OS

Как подготовить запрос SQL в PHP?

При наличии такого кода при любом запросе возвращается false. Почему такое может быть?

public static function searchItem($query) {

        $db = Database::getConnection();
        $sql = 'SELECT * FROM items WHERE item_name LIKE %:query%';

        $result = $db->prepare($sql);
        $result->bindParam(':query', $query, PDO::PARAM_STR);
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $result->execute();

        return $result->fetchAll();
    }
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
- $sql = 'SELECT * FROM items WHERE item_name LIKE %:query%';
+ $sql = 'SELECT * FROM items WHERE item_name LIKE :query';
- $result->bindParam(':query', $query, PDO::PARAM_STR);
+ $result->bindParam(':query', '%'.$query.'%', PDO::PARAM_STR);

И проверьте свой PDO::ATTR_ERRMODE. Должен быть PDO::ERRMODE_EXCEPTION
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
supervaleha
@supervaleha
Web-development
Попробуйте добавить кавычки вокруг %.....%.

Вот так:
$sql = 'SELECT * FROM items WHERE item_name LIKE "%:query%"';
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽