Heim >Datenbank >MySQL-Tutorial >PDO und MySQL: Soll ich den Zeichensatz in der Verbindungszeichenfolge festlegen oder „SET NAMES' verwenden?

PDO und MySQL: Soll ich den Zeichensatz in der Verbindungszeichenfolge festlegen oder „SET NAMES' verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 14:12:13944Durchsuche

PDO and MySQL: Should I Set the Charset in the Connection String or Use `SET NAMES`?

PDO: Muss ich Zeichensätze festlegen und Namen festlegen?

In der Vergangenheit war dies bei der Verwendung der mysql_*-Funktionen erforderlich um den Zeichensatz festzulegen und eine SET NAMES-Abfrage auszuführen, um die richtige Zeichenkodierung sicherzustellen. Das gleiche Prinzip gilt für PDO-Verbindungen.

PDO-Option

Für PDO-Verbindungen können Sie den Zeichensatz als Teil der Verbindungszeichenfolge angeben:

$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

Vor PHP 5.3.6

Wenn Sie zuvor PHP verwenden In Version 5.3.6 wird die Zeichensatzoption ignoriert. Um den Zeichensatz in diesem Fall festzulegen, müssen Sie die exec()-Methode von PDO verwenden:

$dbh = new PDO("mysql:host=$host;dbname=$db",  $user, $password);
$dbh->exec("set names utf8mb4");

Durch das Festlegen des Zeichensatzes stellen Sie sicher, dass Ihre Anwendung mit der Datenbank unter Verwendung der richtigen Zeichenkodierung kommuniziert, wodurch Datenbeschädigungen vermieden werden Anzeigeprobleme.

Das obige ist der detaillierte Inhalt vonPDO und MySQL: Soll ich den Zeichensatz in der Verbindungszeichenfolge festlegen oder „SET NAMES' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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