Регулярные выражения PHP с SELECT LIKE% & lt; string & gt; [Дубликат]

2017 ответ: теперь вы можете делать то, что хотите, в каждом текущем браузере и узле

. Это довольно просто:

  • Вернуть обещание
  • Используйте 'await' , в котором JavaScript ожидает, что обещание будет разрешено в vlue (например, hTTP-ответ)
  • Добавьте 'async' для родительской функции

Вот рабочая версия вашего кода:

(async function(){

var response = await superagent.get('...')
console.log(response)

})()

ожидание поддерживается во всех текущих браузерах и узлах 8 [/ д2]

85
задан George Garchagudashvili 21 October 2014 в 08:30
поделиться

5 ответов

$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');
$query->bindValue(1, "%$value%", PDO::PARAM_STR);
$query->execute();

if (!$query->rowCount() == 0) 
{
    while ($results = $query->fetch()) 
    {
        echo $results['column'] . "<br />\n";
    }       
} 
else 
{
    echo 'Nothing found';
}
109
ответ дан George Garchagudashvili 26 August 2018 в 02:51
поделиться

Чтобы использовать Like с% partial matching, вы также можете сделать это: column like concat('%', :something, '%') (другими словами, используя явно неэкранированные знаки%, которые определенно не являются пользователем) с именованным параметром :something.

Edit: Альтернативный синтаксис, который я нашел, - это использовать оператор конкатенации: ||, поэтому он станет просто: where column like '%' || :something || '%' etc

@bobince упоминает здесь , что :

Трудность возникает, когда вы хотите разрешить буквенный символ % или _ в строке поиска, не действуя в качестве подстановочного знака.

Итак, это что-то еще, что нужно учитывать при объединении вроде и параметризации.

58
ответ дан Community 26 August 2018 в 02:51
поделиться

Вы также можете попробовать это. Я сталкиваюсь с аналогичной проблемой, но получил результат после исследования.

$query = $pdo_connection->prepare('SELECT * FROM table WHERE column LIKE :search');

$stmt= $pdo_connection->prepare($query);

$stmt->execute(array(':search' => '%'.$search_term.'%'));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($result);
8
ответ дан josliber 26 August 2018 в 02:51
поделиться

Это работает:

search `table` where `column` like concat('%', :column, '%')
2
ответ дан kjdion84 26 August 2018 в 02:51
поделиться

PDO ускоряет «%» (может привести к SQL-инъекции): использование предыдущего кода даст результаты поиска, если вы хотите сопоставить частичные строки, но если посетитель набирает символ «%», вы все равно получите результаты, даже если у вас ничего не хранится в базе данных (это может привести к инъекциям sql)

Я пробовал много вариаций с одним и тем же результатом PDO избегает «%» ведущих нежелательных / невозбужденных результатов поиска .

Я, хотя стоило делиться, если кто-то нашел слово вокруг, пожалуйста, поделитесь им

-1
ответ дан Ozkar R 26 August 2018 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: