Проблемы с кодировками при работе с SQL в PHP

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

Правило 1

База данных и таблицы в ней должны быть в кодировке utf8_general_ci.

Правило 2

Сам PHP файл должен быть в кодировке utf8.

Правило 3

В начале PHP файла должен быть следующий HTML тег:

<meta charset="utf-8">

Правило 4

На всякий случай сразу после команды mysqli_connect добавьте такое запрос:

<?php mysqli_query($link, "SET NAMES 'utf8'"); ?>

Дополненный тестовый код

В предыдущем уроке я привел вам тестовый код для проверки общей работоспособности. Давайте дополним его с учетом описанных правил для работы с кодировками:

<meta charset="utf-8"> <?php $host = 'localhost'; // имя хоста $user = 'root'; // имя пользователя $pass = ''; // пароль $name = 'mydb'; // имя базы данных $link = mysqli_connect($host, $user, $pass, $name); mysqli_query($link, "SET NAMES 'utf8'"); $query = 'SELECT * FROM users'; $result = mysqli_query($link, $query) or die(mysqli_error($link)); var_dump($result); ?>

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