Я только изучаю полнотекстовый поиск в MySQL и пытаюсь реализовать его на веб-сайте, который в настоящее время использует команду MYSQL LIKE.
Работает очень хорошо, кроме случаев, когда кто-то набирает что-то вроде McDonald's
.
Апостроф вызывает:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 's' IN BOOLEAN MODE)
Вот код, который я использую:
AND
MATCH(client.clientName, client.clientDesc, offer.offerSaving, offer.offerDesc) AGAINST(+'$keyword' IN BOOLEAN MODE)
GROUP BY offer.idoffer ORDER BY distance ASC, offer.offerScore DESC
McDonald's
сохраняется в базе данных как McDonald's
, однако было бы хорошо, если бы он мог вернуться с McDonald's
, если они напечатают его с апострофом или без него. Это тоже возможно?
Можете ли вы отметить это как правильный ответ, пожалуйста, он работает отлично?
Ошибка возникает на любом языке, который вы используете для написания своего приложения. Вы составляете SQL путем объединения строк, в то время как значения следует передавать отдельно (подготовленные операторы).
Отвечает ли это на ваш вопрос? Как я могу предотвратить SQL-инъекцию в PHP?