(PHP 5 >= 5.0.5, PHP 7, PHP 8)
mysqli::set_charset -- mysqli_set_charset — Задаёт набор символов
Объектно-ориентированный стиль
Процедурный стиль
Задаёт набор символов, который будет использоваться при обмене данными с сервером баз данных.
mysql
Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().
charset
Набор символов, который необходимо установить.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR
) и запрошенная операция не удалась,
выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT
,
вместо этого будет выброшено исключение mysqli_sql_exception.
Пример #1 Пример использования mysqli::set_charset()
Объектно-ориентированный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
printf("Начальный набор символов: %s\n", $mysqli->character_set_name());
/* Изменим набор символов на utf8mb4 */
$mysqli->set_charset("utf8mb4");
printf("Текущий набор символов: %s\n", $mysqli->character_set_name());
?>
Процедурный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
printf("Начальный набор символов: %s\n", mysqli_character_set_name($link));
/* Изменим набор символов на utf8mb4 */
mysqli_set_charset($link, "utf8mb4");
printf("Текущий набор символов: %s\n", mysqli_character_set_name($link));
?>
Результат выполнения приведённых примеров:
Начальный набор символов: latin1 Текущий набор символов: utf8mb4
Замечание:
Это предпочтительный способ установки набора символов. Функции mysqli_query() (например
SET NAMES utf8
) для этих целей не рекомендуется. Дополнительную информацию даёт страница «Наборы символов в MySQL».