PHP 8.4.0 RC4 available for testing

mysqli::get_charset

mysqli_get_charset

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

mysqli::get_charset -- mysqli_get_charsetLiefert ein Zeichensatz-Objekt

Beschreibung

Objektorientierter Stil

public mysqli::get_charset(): ?object

Prozeduraler Stil

mysqli_get_charset(mysqli $mysql): ?object

Gibt ein Zeichensatz-Objekt zurück, das mehrere Eigenschaften des aktuell verwendeten Zeichensatzes enthält.

Parameter-Liste

mysql

Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.

Rückgabewerte

Die Funktion gibt ein Zeichensatz-Objekt mit den folgenden Eigenschaften zurück:

charset

Name des Zeichensatzes

collation

Name der Kollation (Sortierregel)

dir

Verzeichnis, aus dem die Beschreibung des Zeichensatzes geholt wurde (?) oder "" für interne Zeichensätze

min_length

Minimale Zeichenlänge (in Bytes)

max_length

Maximale Zeichenlänge (in Bytes)

number

Interne Nummer des Zeichensatzes

state

Status des Zeichensatzes (?)

Beispiele

Beispiel #1 mysqli::get_charset()-Beispiel

Objektorientierter Stil

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

Prozeduraler Stil

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

Die obigen Bespiele erzeugen folgende Ausgabe:

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)
}

Siehe auch

add a note

User Contributed Notes 1 note

up
1
jab_creations at yahoo dot com
4 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