Comment définir l'encodage pour php pdo : 1. Définissez l'encodage de la base de données via "$_pdo->exec('SET NAMES utf8');"; 2. Ajoutez "MYSQL_ATTR_INIT_COMMAND" au quatrième paramètre de propriété "PDO" instanciée.
L'environnement d'exploitation de cet article : système Windows7, version php5.2.4, ordinateur DELL G3
Solution au problème tronqué de PHP utilisant PDO pour faire fonctionner la base de données, encodage des paramètres php pdo :
Lors de l'utilisation d'une connexion PDO pour faire fonctionner la base de données, il apparaît parfois : les caractères chinois enregistrés dans la base de données sont tronqués. Si le fichier est au format UTF-8, la solution est la suivante :
(1) L'objet instancié exécute directement la méthode query() ou la méthode exec() :
<?php class DB { static public function getDB() { try { $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2); $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values); } catch (PDOException $e) { exit('数据库连接错误!错误信息:'.$e->getMessage()); } $_pdo->query("SET NAMES utf8"); // $_pdo->exec('SET NAMES utf8'); //设置数据库编码,两种方法都可以 return $_pdo; } } ?>
(2 ) Dans l'instance Ajoutez l'attribut MYSQL_ATTR_INIT_COMMAND au quatrième paramètre de PDO :
<?php class DB { static public function getDB() { try { $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8'); $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values); } catch (PDOException $e) { exit('数据库连接错误!错误信息:'.$e->getMessage()); } return $_pdo; } } ?>
Remarque : Les méthodes ci-dessus ont été testées.
[Apprentissage recommandé : Tutoriel vidéo 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!