Как создать подстановочный знак для подготовленных операторов для нескольких слов для MATCH AGAINST в PHP? - PullRequest
0 голосов
/ 07 сентября 2018

Я построил шаблон для подготовленного оператора для MATCH AGAINST, где я ищу одно слово. Подстановочный знак выглядит следующим образом:

$statement = $DB->prepare('SELECT *  FROM users
                       WHERE firstname LIKE ?
                       AND lastname LIKE ?
                       AND MATCH (firstname, lastname) AGAINST (?  IN BOOLEAN MODE)');

$statement->bind_param('sss',   $firstname, $lastname,  $searchString);
$statement->execute();
$result = $statement->get_result();
$statement->close();

Когда я ищу одно слово в методе AGAINST(), оно работает нормально. Но как создать шаблон для поиска нескольких слов? Примерно так здесь

Select * FROM users WHERE firstname LIKE "d%" AND lastname LIKE "f%" and MATCH (firstname, lastname) AGAINST ("Jonny Bonny Conny Alex" IN BOOLEAN MODE)

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

$searchStrng = "Jonny "."Bonny "."Conny "."Alex";

$statement = $DB->prepare('SELECT *  FROM users
                   WHERE firstname LIKE ?
                   AND lastname LIKE ?
                   AND MATCH (firstname, lastname) AGAINST (?  IN BOOLEAN MODE)');

$statement->bind_param('sss',   $firstname, $lastname,  $searchString);
$statement->execute();
$result = $statement->get_result();
$statement->close();

Так, пожалуйста, как создать шаблон для нескольких слов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...