Акцент слова нечувствительный поиск - PullRequest
1 голос
/ 14 февраля 2012

Сортировка моей таблицы и столбцов: utf8_general_ci, теперь, когда я пытаюсь найти слово Supermarché, команда MySQL возвращает мне пустой результат:

$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type = "Supermarché"');

Однако, когда я искал другоеслово без акцента в той же таблице (в том же столбце), я правильно получил результат.

Есть ли какое-то отношение к структуре таблицы MySQL?

1 Ответ

1 голос
/ 14 февраля 2012

Кодировка вашего PHP-файла должна соответствовать кодировке клиента MySQL. Вероятно, происходит то, что é в вашем исходном коде неправильно попадает в базу данных. Если ваш исходный код закодирован в UTF-8, вам следует позвонить

mysqli_set_charset($link, "utf8");  or  mysqli::set_charset("utf8");

или если вы используете старый MySQL API:

mysql_set_charset("utf8");

Это необходимо сделать один раз для каждого соединения, желательно сразу после его создания.

Другая возможность - заменить é escape-кодами, чтобы вы всегда знали, что будет отправлено в базу данных:

"Supermarch\xe9"        # for connections in latin1
"Supermarch\xc3\xa9"    # for connections in utf8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...