ConFoo 2025

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_charset -- mysqli_get_charsetВозвращает объект, описывающий кодировку

Описание

Объектно-ориентированный стиль

public mysqli::get_charset(): ?object

Процедурный стиль

mysqli_get_charset(mysqli $mysql): ?object

Возвращает объект, содержащий свойства текущей кодировки.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().

Возвращаемые значения

Функция возвращает объект с следующими свойствами:

charset

Имя кодировки

collation

Имя сопоставления

dir

Директория, из которой получено описание кодировки. (?) или "" для встроенных наборов

min_length

Минимальная длина символа в байтах

max_length

Максимальная длина символа в байтах

number

Внутренний номер кодировки

state

Состояние набора символов (?)

Примеры

Пример #1 Пример использования mysqli::get_charset()

Объектно-ориентированный стиль

<?php
$db
= mysqli_init();
$db->real_connect("localhost","root","","test");
var_dump($db->get_charset());
?>

Процедурный стиль

<?php
$db
= mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
var_dump(mysqli_get_charset($db));
?>

Результат выполнения приведённых примеров:

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Смотрите также

Добавить

Примечания пользователей 1 note

up
1
jab_creations at yahoo dot com
5 months ago
On a new server this function was incorrectly returning "utf8mb4_general_ci".

I started a bug report and it turns out that:

1. The PHP team maintained an internal static list.
2. They ultimately decided to not be bothered to update that internal static list.

So as someone with the intentions on knowing exactly what is going on (e.g. Paris Michigan !== Paris France) I now reject the use of this function.

I'm not sure about other databases though for MariaDB you can determine the many character sets using the following SQL query:

SELECT VARIABLE_NAME, GLOBAL_VALUE, DEFAULT_VALUE
FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES
WHERE VARIABLE_NAME LIKE '%CHAR%';
To Top