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!