Maison  >  Article  >  base de données  >  Comment réparer l'encodage UTF-8 cassé avec PDO et MySQL ?

Comment réparer l'encodage UTF-8 cassé avec PDO et MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 19:23:29538parcourir

How to Fix Broken UTF-8 Encoding with PDO and MySQL?

Réparer l'encodage UTF-8 cassé avec PDO et MySQL

Lors de l'utilisation de PDO avec une base de données MySQL en PHP, insertion de données codées en UTF-8 entraîne souvent des caractères tronqués ou des points d'interrogation dans la base de données. Cela peut être un problème frustrant, en particulier lorsqu'il s'agit de langues comme l'arabe.

Pour résoudre ce problème, configurez simplement la connexion MySQL pour qu'elle utilise l'encodage UTF-8 dès le début. Voici comment procéder :

Code PHP :

<code class="php">$pdo = new PDO(
    'mysql:host=hostname;dbname=defaultDbName',
    'username',
    'password',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);</code>

Attention : Cette solution s'applique uniquement aux versions PHP 5.3.5 et ci-dessous. Pour les versions PHP 5.3.6 et ultérieures, reportez-vous aux réponses alternatives fournies sur le fil de discussion d'origine.

En définissant la commande initiale sur "SET NAMES utf8", PDO envoie automatiquement cette requête au serveur après avoir établi la connexion, s'assurer que toutes les requêtes ultérieures utilisent le codage UTF-8. Cela élimine le besoin de requêtes SET NAMES ou SET CHARACTER SET supplémentaires après l'établissement de la connexion.

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