«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно использовать LIKE с BindParam в запросах PDO MySQL?

Как правильно использовать LIKE с BindParam в запросах PDO MySQL?

Опубликовано 16 ноября 2024 г.
Просматривать:915

How to Correctly Use LIKE with BindParam in MySQL PDO Queries?

Правильное использование LIKE с BindParam в MySQL PDO-запросе

При попытке выполнить поиск LIKE с помощьюbindParam в MySQL PDO-запросах важно использовать правильный синтаксис для обеспечения точных результатов.

Оптимизировано Синтаксис

Чтобы сопоставить имена пользователей, начинающиеся с «a», с помощью метода связывания Парам, правильный синтаксис:

$term = "a%";

Напротив, синтаксис, представленный в исходном вопросе, "$term = "'$term%'", неверен, поскольку он помещает ненужные внутренние одинарные кавычки вокруг значения $term, что приведет к поиску 'a%' вместо a%.

bindParam Role

bindParam отвечает за автоматическое заключение строковых данных при их вставке в операторы SQL. Поэтому добавление одинарных кавычек вручную не является необходимым и может привести к возникновению ошибок. к неверным результатам.

Пересмотренный код

Использование оптимизированный синтаксис, исправленный код будет выглядеть так:

$term = "a%";

$sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10";      

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3