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'");
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));
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");
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!