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%';mysqli::get_charset
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli::get_charset
Референца за `mysqli.get-charset.php` со подобрена типографија и навигација.
mysqli::get_charset
mysqli_get_charset
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
mysqli::get_charset -- mysqli_get_charset — Враќа објект за множество знаци
= NULL
Напиши целосна ознака на елемент
Процедурален стил
Враќа објект за множество знаци кој обезбедува неколку својства на тековното активно множество знаци.
Параметри
-
mysql објектот како свој прв аргумент. mysqli Само процедурален стил: А mysqli_connect() or mysqli_init()
Вратени вредности
Функцијата враќа објект за множество знаци со следниве својства:
charsetИме на множеството знаци
collationИме на подредувањето
dirДиректориум од кој е преземен описот на множеството знаци или "" за вградени множества знаци
min_lengthМинимална должина на знак во бајти
max_lengthМаксимална должина на знак во бајти
numberВнатрешен број на множеството знаци
stateОд PHP 8.2.0, секогаш е
1
Примери
Пример #1 mysqli::get_charset() example
Напиши целосна ознака на елемент
<?php
$db = mysqli_init();
$db->real_connect("localhost","root","","test");
$db->set_charset('latin1');
var_dump($db->get_charset());
?>Процедурален стил
<?php
$db = mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
mysqli_set_charset($db, 'latin1');
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(1)
}
Види Исто така
- mysqli_character_set_name() mysqli::set_charset()
- mysqli_set_charset() - Поставува сет на знаци на клиентот