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

Как безопасно связать как параметры с подстановочными знаками в PDO?

Опубликовано в 2025-03-25
Просматривать:564

How to Safely Bind LIKE Parameters with Wildcards in PDO?

связывание, подобные значениям, с % подстановочных знаков в PDO

PDO обеспечивает безопасный способ выполнения SQL -запросов с связанными параметрами, предотвращая уязвимости инъекции SQL. При привязке, подобных параметрам, которые включают символы подстановочных знаков, такие как%, вы можете столкнуться с путаницей.

В запросе ниже мы пытаемся привязать переменную $ частично, используя PDO:

select wrd from tablename WHERE wrd LIKE '$partial%'

Вариант 1: связывать с частичным подстановочным знаком (%) в конце

Да, это действительный вариант:

select wrd из таблицы, где wrd like ': частично%'
select wrd from tablename WHERE wrd LIKE ':partial%'
, где: partial a partial = "& & &? 2: связывать с частичным подходом (%) внутри значения

. Строка конкатенация в самом запросе MySQL:

SELECT WRD из TableName, где wrd, как concat (: partial, ' %')

Специальные символы, обрабатывающие
select wrd from tablename WHERE wrd LIKE ':partial%'
, если ваше частичное слово содержит особые символы, такие как %, _ или \, вам нужно избежать их, перед тем, как привязывать параметр. Следующий код демонстрирует это:

$ stmt = $ db-> Prepare («Выберите WRD из TableName, где wrd like: term Escape ''"); $ elected = str_replace (array ('', ' %', '_'), array ('' ',' %',' _ '), $ var); $ stmt-> bindparam (': term', $ сбежал);

]

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3