я пытаюсь добавить управление акцентом в моем запросе с помощью команды сортировки, но я получаю ошибки, связанные с неверной сортировкой …
это мой запрос sql:
SELECT p.ID,p.NOM,p1.ID,p1.NOM,p.ISNAV,p.LIEN
FROM p
LEFT OUTER JOIN p AS p1 ON p.FK = p1.ID
WHERE ( p.NOM LIKE '%dev%' collate utf8mb4_unicode_ci
OR p.HTML LIKE '%dev%' collate utf8mb4_unicode_ci
OR p1.NOM LIKE '%dev%' collate utf8mb4_unicode_ci
OR p1.HTML LIKE '%dev%' collate utf8mb4_unicode_ci
)
and p1.TPL<>'search'
ORDER BY p.FK t
это моя ошибка в php:
COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'latin1'
это моя ошибка в командной строке mysql:
COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'utf8'
этот запрос работает в phpmyadmin
когда я изменяю utf8mb4_unicode_ci на utf8_unicode_ci в консоли mysql, запрос работает … но не в моем php-коде.
Я немного растерялся, может кто-нибудь объяснить мне, почему я получаю ошибку сортировки, когда моя колонка, кажется, имеет хорошее сопоставление.
Спасибо
Вы могли бы использовать mysqli::set_charset
в php.
$mysqli->set_charset("utf8");
Других решений пока нет …