Die Zeichensatzeinstellungen sind wichtig, wenn PHP für MySQL -Datenbankverbindungen verwendet werden. Zeichensätze bestimmen, wie die Datenbank Textdaten verarbeitet. Die Auswahl des richtigen Zeichensatzes ist daher entscheidend, um verstümmelte Code zu vermeiden und die Datenkonsistenz sicherzustellen. In diesem Artikel wird untersucht, wie MySQLI :: set_charset () und mySQLi :: get_charset () kombiniert werden, um den Zeichensatz der Datenbankverbindung festzulegen und zu überprüfen, um den richtigen Zeichensatz zu gewährleisten.
In PHP ist die MySQLI -Erweiterung eine gemeinsame Methode zur Interaktion mit einer MySQL -Datenbank. Es unterstützt objektorientierte Methoden und unterstützt auch Funktionen wie Vorverarbeitungsanweisungen und Multi-Result-Sets. Mit MySQLI können wir leicht Verbindungen und Abfragen von Operationen mit der MySQL -Datenbank herstellen.
Bei der Interaktion mit der Datenbank bestimmen die Zeichensatzeinstellungen, wie Zeichendaten codiert werden. Angenommen, wir müssen Daten mit chinesischen, japanischen oder anderen Sonderfiguren speichern. Wenn der Zeichensatz nicht ordnungsgemäß eingestellt ist, führt er zu verstümmelten Code, was die Daten in schweren Fällen beschädigen kann.
Um dies zu vermeiden, ist es sehr notwendig, den Zeichensatz richtig einzustellen und zu überprüfen. Der Standard -Zeichensatz von MySQL ist latein1 . Wenn Sie mehrsprachige Inhalte speichern müssen, wird empfohlen , UTF8- oder UTF8MB4 -Zeichensätze zu verwenden. Insbesondere unterstützt UTF8MB4 eine breitere Reihe von Zeichen, einschließlich spezieller Symbole wie Emoji Emoji.
MySQLI :: set_charset () ist eine Methode, mit der der Datenbankverbindungszeichen festgelegt wird. Wenn Sie diese Methode aufrufen, können Sie den in der aktuellen Datenbankverbindung verwendeten Zeichensatz explizit angeben.
<?php
// Stellen Sie eine Datenbankverbindung her
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Stellen Sie den Zeichen auf utf8mb4
if (!$mysqli->set_charset("utf8mb4")) {
echo "Error loading character set utf8mb4: " . $mysqli->error;
} else {
echo "Aktueller Zeichensatz: " . $mysqli->get_charset()->charset;
}
// Andere Aktionen ausführen
?>
Im obigen Code wird $ mysqli-> set_charset ("utf8mb4") verwendet, um den Zeichensatz der derzeit angeschlossenen an UTF8MB4 festzulegen. Wenn die Einstellung erfolgreich ist, wird das Programm weiter ausgeführt, und wenn es fehlschlägt, wird eine Fehlermeldung ausgegeben.
Mit der Methode MySQLI :: Get_Charset () wird der Zeichensatz der aktuellen Datenbankverbindung abgerufen. Diese Methode gibt ein Objekt zurück, das Zeichensatzinformationen enthält, normalerweise ein Objekt, das Charset- und Kollationseigenschaften enthält.
<?php
// Holen Sie sich die Charakter -Set -Informationen der aktuellen Verbindung
$charset_info = $mysqli->get_charset();
// Ausgabe von Zeichensatzinformationen
echo "Aktueller Zeichensatz: " . $charset_info->charset . "<br>";
echo "Aktuelle Sortierregeln: " . $charset_info->collation;
?>
Über den obigen Code können wir überprüfen, ob die Zeichensatzeinstellungen der aktuell verbundenen Angeschlossenen korrekt sind. Wenn der Zeichensatz bei der Verbindung mit der Datenbank nicht explizit eingestellt ist, verwendet MySQLI den MySQL -Standardzeichensatz.
Um sicherzustellen, dass die Datenbankverbindung den richtigen Zeichensatz verwendet, können wir MySQLi :: set_charset () und mySQLi :: get_charset () zum Setup und zur Überprüfung kombinieren.
<?php
// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Stellen Sie den Zeichen auf utf8mb4
if (!$mysqli->set_charset("utf8mb4")) {
die("Error loading character set utf8mb4: " . $mysqli->error);
}
// 获取并验证Aktueller Zeichensatz
$charset_info = $mysqli->get_charset();
if ($charset_info->charset === "utf8mb4") {
echo "Der Zeichensatz ist korrekt auf: " . $charset_info->charset;
} else {
echo "Der Zeichensatz ist falsch, Aktueller Zeichensatz: " . $charset_info->charset;
}
// Führen Sie andere Datenbankvorgänge aus
?>
Setzen Sie in diesem Code zunächst den Zeichen für UTF8MB4 über die Methode set_charset () ein und erhalten Sie dann die aktuellen Zeichensatzinformationen über die Methode get_charset () und überprüfen Sie sie. Wenn der Zeichensatz korrekt festgelegt ist, gibt das Programm die entsprechenden Eingabeaufforderungsinformationen aus.
In der tatsächlichen Entwicklung können Charakter-Set-Probleme zu schwierigen Fehlern wie verstümmelter Code, Datenverlust usw. führen. Dazu wird empfohlen, dass Entwickler immer die MySQLI :: set_charset () -Methode verwenden, um den Zeichensatz explizit festzulegen, bevor der Zeichensatz ausgeführt wird, und die MySQLI ::: -Chars-Set- Set-Satze zu verwenden, um zu bestätigen, ob der Charakter festgestellt wird, ob der Charakter festgestellt wird.
Mit MySQLI :: set_charset () und MySQLi :: get_charset () können wir sicherstellen, dass Datenbankverbindungen den richtigen Zeichensatz verwenden, wodurch Charaktercodierungsfehler vermieden und ein genaues Speicher und Abrufen von Daten sichergestellt werden. Wenn es um mehrsprachiger Charakterspeicher geht, wird empfohlen, den UTF8MB4 -Charakter auszuwählen, um sicherzustellen, dass verschiedene Sonderzeichen, einschließlich Emoji Emoji usw., verarbeiten können.