как запрос не работает, если строка имеет символ '&'

0

У меня есть имя таблицы в качестве теста. В тестовой таблице есть столбец test1. В столбце test1 есть строковое значение "abc & def", и я создал строчную переменную $ str = "abc & def". Когда я попытаюсь выполнить как запрос (выберите * из теста, где test1 нравится "% $ str%"). это ничего не даст в результате. Может ли кто-нибудь помочь?

  • 2
    Ваша переменная не разрешается. Опубликуйте свой точный код того, как вы пытаетесь выполнить инструкцию.
  • 1
    Как должно хорошо работать с амперсандами.
Показать ещё 2 комментария
Теги:
sql-like
ampersand

1 ответ

0

Предполагаю, что вы используете основной (ванильный) PHP:

Что-то вроде ниже:

$esc_str = $db->quote($str);
// this is for PDO; for MySQLi use $db->escape_string($str) instead
$qry = "select * from test where test1 like '%$esc_str%'"

используйте следующее:

$esc_str = $db->quote($str);
$qry = "select * from test where test1 like '%".$esc_str."%'"

или же

$esc_str = $db->quote($str);
'select * from test where test1 like "%$esc_str%"'

этот пример преобразует переменную php в https://www.virendrachandak.com/techtalk/php-double-quotes-vs-single-quotes/

Надеюсь, поможет :)

  • 0
    Это абсолютно открыто для SQL-инъекций!
  • 0
    @MadhurBhaiya, так что вы предлагаете, если его ядро PHP и MySQL? , Очевидно, $ str должен быть проверен первым
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню