(PHP 5 >= 5.0.5, PHP 7, PHP 8)
mysqli::set_charset -- mysqli_set_charset — Legt den Standard-Zeichensatz des Clients fest
Objektorientierter Stil
Prozeduraler Stil
Legt den Zeichensatz fest, der verwendet werden soll, wenn Daten vom und zum Datenbankserver gesendet werden.
mysql
Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
charset
Der gewünschte Zeichensatz
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails,
a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
,
a mysqli_sql_exception is thrown instead.
Beispiel #1 mysqli::set_charset()-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
printf("Ursprünglicher Zeichensatz: %s\n", $mysqli->character_set_name());
/* Zeichensatz auf utf8mb4 ändern */
$mysqli->set_charset("utf8mb4");
printf("Aktueller Zeichensatz: %s\n", $mysqli->character_set_name());
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
printf("Ursprünglicher Zeichensatz: %s\n", mysqli_character_set_name($link));
/* Zeichensatz auf utf8mb4 ändern */
mysqli_set_charset($link, "utf8mb4");
printf("Aktueller Zeichensatz: %s\n", mysqli_character_set_name($link));
Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:
Ursprünglicher Zeichensatz: latin1 Aktueller Zeichensatz: utf8mb4
Hinweis:
Um diese Funktion auf einer Windows-Plattform verwenden zu können, wird eine MySQL-Client-Bibliothek der Version 4.1.11 oder höher benötigt (für MySQL 5.0 wird 5.0.6 oder höher benötigt).
Hinweis:
Dies ist die bevorzugte Methode, um den Zeichensatz zu ändern. Es ist nicht empfehlenswert, mysqli_query() zu verwenden, um ihn zu setzen (z. B. mit
SET NAMES utf8
). Siehe den Abschnitt Konzepte für MySQL-Zeichensätze für weitere Informationen.