Maison >développement back-end >tutoriel php >Comment configurer correctement les jeux de caractères dans les connexions à la base de données PDO ?

Comment configurer correctement les jeux de caractères dans les connexions à la base de données PDO ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 01:27:25761parcourir

How to Properly Configure Character Sets in PDO Database Connections?

Configuration de connexion PDO : gestion des jeux de caractères

Lors de l'établissement d'une connexion à l'aide d'objets de données PHP (PDO), il est crucial de prendre en compte le caractère définir la gestion, en particulier si vous travaillez avec des caractères non-ASCII. À cet égard, le PHP PDO fournit des options pour définir le jeu de caractères.

Approche de la chaîne de connexion

Dans les versions PDO à partir de PHP 5.3.6, vous pouvez spécifier le caractère défini directement dans la chaîne de connexion. Par exemple, pour définir le jeu de caractères sur 'utf8mb4' :

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

Approche DBH Exec pour les anciennes versions de PHP

Cependant, si vous utilisez une ancienne version de PHP (avant 5.3.6), l'option charset dans la chaîne de connexion sera ignorée. Dans de tels cas, vous devez définir le jeu de caractères en utilisant l'approche suivante :

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

Approche Legacy MySQL_*

L'extrait de code que vous avez fourni, qui implique l'utilisation mysql_set_charset et mysql_query("SET NAMES 'UTF8'"), s'applique aux anciennes fonctions MySQL_*, qui sont désormais obsolètes et découragé. PDO est l'approche recommandée pour se connecter et interagir avec les bases de données MySQL en PHP.

Conclusion

En suivant ces directives, vous pouvez configurer efficacement la gestion des jeux de caractères dans PDO connexions, garantissant que les caractères non-ASCII sont gérés correctement dans vos applications PHP.

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!

Déclaration:
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