Правильное использование 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