So lösen Sie das Problem verstümmelter Zeichen, die in PHP in die Datenbank eingefügt werden

PHPz
Freigeben: 2023-03-28 15:43:22
Original
782 Leute haben es durchsucht

Beim Einfügen von Daten in die Datenbank mit PHP werden manchmal verstümmelte Zeichen auftreten. Dies liegt daran, dass die Zeichensätze während der Datenübertragung inkonsistent sind. In diesem Artikel erfahren Sie, wie Sie das Problem lösen können, dass PHP verstümmelte Zeichen in die Datenbank einfügt.

1. Überprüfen Sie den Datenbank-Zeichensatz

Bevor Sie mit der Lösung des Problems beginnen, müssen Sie zunächst den Datenbank-Zeichensatz überprüfen. Mit dem folgenden Befehl können Sie den Zeichensatz der aktuellen Datenbank anzeigen:

SHOW VARIABLES LIKE 'character_set_database';
Nach dem Login kopieren

Wenn der Datenbankzeichensatz nicht UTF-8 ist, müssen Sie ihn in UTF-8 ändern, um sicherzustellen, dass die Daten eingefügt und gelesen werden können korrekt. Sie können den folgenden Befehl verwenden, um den Datenbankzeichensatz auf UTF-8 zu ändern:

ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
Nach dem Login kopieren

2. Stellen Sie das PHP-Dateikodierungsformat ein.

Stellen Sie das Kodierungsformat oben in der PHP-Datei auf UTF-8 ein, um dies sicherzustellen Die Zeichenfolgen in PHP sind korrekt. In die Datenbank einfügen. Sie können den folgenden Code verwenden, um das PHP-Codierungsformat festzulegen:

header('Content-Type: text/html; charset=UTF-8');
Nach dem Login kopieren

3. Legen Sie das MySQLi-Codierungsformat fest

Wenn Sie Daten mithilfe der MySQLi-Erweiterung in PHP einfügen, müssen Sie das MySQLi-Codierungsformat festlegen. Sie können den folgenden Code verwenden, um das MySQLi-Codierungsformat festzulegen:

$mysqli = new mysqli("localhost", "username", "password", "database_name");
$mysqli -> set_charset("utf8");
Nach dem Login kopieren

4. Verwenden Sie die Funktion htmlspecialchars

Bevor Sie Daten einfügen, verwenden Sie die in PHP integrierte Funktion htmlspecialchars, um die Zeichenfolge zu maskieren, die eingefügt werden muss. Dadurch wird verhindert, dass Sonderzeichen Auswirkungen auf die Datenbank haben. Sie können den folgenden Code verwenden, um die Zeichenfolge zu maskieren:

$str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
Nach dem Login kopieren

5. Verwenden Sie eine vorbereitete Anweisung

Die Verwendung einer vorbereiteten Anweisung kann SQL-Injection wirksam verhindern und auch verstümmelte Zeichen vermeiden. Sie können den folgenden Code verwenden, um Daten mithilfe einer vorbereiteten Anweisung einzufügen:

$stmt = $mysqli -> prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
$stmt -> bind_param("ss", $val1, $val2);
$val1 = htmlspecialchars($val1, ENT_QUOTES, 'UTF-8');
$val2 = htmlspecialchars($val2, ENT_QUOTES, 'UTF-8');
$stmt -> execute();
Nach dem Login kopieren

6. Verwenden Sie PDO

Mit PDO können Datenbankoperationen bequemer abgewickelt und verstümmelte Zeichen effektiv vermieden werden. Sie können den folgenden Code verwenden, um Daten mit PDO einzufügen:

$conn = new PDO("mysql:host=localhost;dbname=database_name;charset=utf8", "username", "password");
$stmt = $conn -> prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
$stmt -> execute([$val1, $val2]);
Nach dem Login kopieren

7. Zusammenfassung

Beim Einfügen in die Datenbank mit PHP kommt es sehr häufig zu Problemen mit verstümmeltem Code. Sie können das Problem verstümmelter Zeichen jedoch leicht lösen, indem Sie einfach die oben genannten Schritte befolgen. Es ist zu beachten, dass Sie vor der Durchführung von Datenbankoperationen zunächst prüfen müssen, ob der Datenbankzeichensatz korrekt ist. Dies ist ein wichtiger Schritt, um verstümmelte Zeichen zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem verstümmelter Zeichen, die in PHP in die Datenbank eingefügt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage