Wenn wir PHP zum Herstellen einer Verbindung zu MySQL verwenden, stoßen wir häufig auf das Problem verstümmelter Zeichen. Dies ist für uns ein großes Problem beim Schreiben mehrsprachiger Websites. Bevor wir uns mit diesem Problem befassen, müssen wir zunächst die Gründe für die Bildung verstümmelter Zeichen verstehen.
1. Gründe für verstümmelte Zeichen
Wenn PHP für die Verbindung zu MySQL verwendet wird und der Zeichensatz von MySQL nicht mit dem Zeichensatz von PHP übereinstimmt, werden verstümmelte Zeichen angezeigt. Die spezifischen Gründe sind wie folgt:
- Der Zeichensatz von MySQL und der Zeichensatz von PHP sind inkonsistent.
Der Standardzeichensatz von MySQL ist UTF-8, während der Standardzeichensatz von PHP ISO-8859-1 ist. Wenn Sie in Ihrem PHP-Code keinen Zeichensatz angeben, verwendet PHP den ISO-8859-1-Zeichensatz. Wenn zu diesem Zeitpunkt die von MySQL abgefragten Daten UTF-8-Zeichen enthalten, werden verstümmelte Zeichen angezeigt.
- Der Zeichensatz der MySQL-Datentabelle stimmt nicht mit dem Zeichensatz des MySQL-Servers überein.
In MySQL verfügt jede Datentabelle über einen Standardzeichensatz. Wenn der Zeichensatz der Datentabelle nicht mit dem Zeichensatz des MySQL-Servers übereinstimmt, werden möglicherweise verstümmelte Zeichen angezeigt.
- Die Art und Weise, wie PHP eine Verbindung zu MySQL herstellt, ist falsch.
Beim Herstellen einer Verbindung zu MySQL verfügt PHP über verschiedene Verbindungsmethoden, z. B. mysql_connect, mysqli_connect, PDO usw. Verschiedene Verbindungsmethoden verwenden unterschiedliche Kodierungsmethoden. Bei falscher Auswahl führt dies zu Problemen mit verstümmeltem Code.
2. Lösen Sie das Problem mit verstümmeltem Code
Aus den oben genannten Gründen können die folgenden Maßnahmen ergriffen werden, um das Problem mit verstümmeltem Code zu lösen.
- Zeichensatz für PHP angeben
Lösen Sie im PHP-Code das Problem verstümmelter Zeichen, indem Sie den Zeichensatz angeben. Sie können den folgenden Code verwenden:
header('Content-Type:text/html;charset=utf-8');
Nach dem Login kopieren
- Ändern Sie den MySQL-Standardzeichensatz
Sie können den MySQL-Standardzeichensatz in der MySQL-Konfigurationsdatei my.cnf ändern. Öffnen Sie die Datei, suchen Sie den Abschnitt [mysqld] und fügen Sie den folgenden Code hinzu:
character-set-server=utf8
Nach dem Login kopieren
- Ändern Sie den Zeichensatz der MySQL-Datentabelle
Sie können den Zeichensatz der Datentabelle mit der folgenden Anweisung ändern:
ALTER TABLE {table_name} CONVERT TO CHARACTER SET utf8;
Nach dem Login kopieren
- Ändern Sie die Art und Weise, wie PHP eine Verbindung zu MySQL herstellt.
Sie können PDO verwenden, um eine Verbindung zu MySQL herzustellen, und beim Herstellen der Verbindung den Zeichensatz angeben, wie unten gezeigt:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'password');
Nach dem Login kopieren
Wenn Sie MySQL für die Verbindung zu MySQL verwenden, können Sie den Zeichensatz über angeben den folgenden Code:
$mysqli = mysqli_connect('localhost', 'root', 'password', 'test');
mysqli_set_charset($mysqli, 'utf8');
Nach dem Login kopieren
- Speichern Sie die PHP-Datei im UTF-8-Kodierungsformat.
Wenn Ihre PHP-Datei chinesische Zeichen enthält, müssen Sie die Datei beim Speichern im UTF-8-Kodierungsformat speichern, da sonst verstümmelte Zeichen angezeigt werden.
Zusammenfassend lässt sich sagen, dass das verstümmelte Problem der PHP-Verbindung zu MySQL ein sehr häufiges Problem ist, aber solange Sie die Lösung beherrschen, können Sie es leicht lösen. Ich hoffe, dieser Artikel kann allen helfen.
Das obige ist der detaillierte Inhalt vonWas ist der Grund für das verstümmelte Problem der PHP-Verbindung zu MySQL? Wie kann man es lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!