mysql — Sphinxql с переполнением стека PDO

Я интегрирую Sphinxsearch в свой сайт и переписываю свой старый код для использования Sphinx.
Проблема, которую я получил, со специальными символами внутри MATCH в SphinxQL.
Пример: хочу найти H&M
С простым mysql я получаю тысячи записей, так что я совершенно уверен, что у меня есть название, содержащее это слово в моей базе данных.
Мне не нужен расширенный синтаксис запроса в MATCH.

$q = "h&m";
$spxq = "SELECT * FROM sphinx_index WHERE MATCH(:query) LIMIT 0,10";
$stmt = $DB->prepare($spxq);
$stmt->bindValue(':query', $q, PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);

Это не возвращает никаких результатов.
После этого я попытался избежать $ q так:

$q = "h\&m";

Все еще не работает. Пробовал с двойным побегом, все еще не работает.
Любая помощь будет оценена.

0

Решение

Хорошо, я понял, если у кого-то в будущем возникнет такая же проблема.
Решение состоит в том, чтобы добавить специальные символы, которые вы хотите найти в sphinx.conf файл, в charset_table.

Так что для моего случая H&М, вам нужно добавить & символ (U + 026) в таблице кодировки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]