Maison > base de données > tutoriel mysql > Comment définir correctement le codage des caractères pour les connexions PDO MySQL ?

Comment définir correctement le codage des caractères pour les connexions PDO MySQL ?

Linda Hamilton
Libérer: 2025-01-04 08:23:35
original
838 Les gens l'ont consulté

How to Properly Set Character Encoding for PDO MySQL Connections?

Gestion du codage des caractères de connexion PDO

Lors de l'établissement d'une connexion MySQL à l'aide de l'extension PDO (PHP Data Objects), un codage de caractères approprié est crucial pour garantir l’intégrité des données et le bon fonctionnement. Explorons comment définir l'encodage des caractères pour une connexion PDO.

Dans l'extension mysql_* traditionnelle utilisée dans votre code précédent :

mysql_set_charset("utf8",$link);
mysql_query("SET NAMES 'UTF8'");
Copier après la connexion

Ces commandes définissent l'encodage des caractères pour la connexion. Cependant, avec PDO, l'approche est différente.

Pour définir le codage des caractères pour une connexion PDO, vous pouvez le spécifier dans la chaîne de connexion elle-même. Par exemple :

$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
Copier après la connexion

Cette chaîne ajoute l'option charset à la chaîne de connexion, en spécifiant l'encodage souhaité, dans ce cas, "utf8mb4". L'utilisation de cette méthode définit l'encodage lorsque la connexion est établie.

Versions PHP héritées

Cependant, si vous utilisez une version PHP antérieure à 5.3.6, le jeu de caractères L'option dans la chaîne de connexion a été ignorée. Dans ce cas, vous devez utiliser une méthode alternative :

$dbh = new PDO("mysql:host=$host;dbname=$db",  $user, $password);
$dbh->exec("set names utf8mb4");
Copier après la connexion

Ici, la connexion est établie sans spécifier l'encodage, et la méthode exec() est utilisée pour exécuter une requête SQL pour définir l'encodage des caractères après la connexion est établie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal