PHP PDO: jeu de caractères, le nom du set?

Je l'avais déjà dans mes normale mysql_* connexion:

mysql_set_charset("utf8",$link);
mysql_query("SET NAMES 'UTF8'");

Ai-je besoin d'une AOP? Et où dois-je avoir?

$connect = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  • "SET NAMES utf8" doit être évitée en raison de l'injection SQL. Voir php.net/manual/en/mysqlinfo.concepts.charset.php pour précise-t-il.
  • si vous avez des problèmes de charset alors vous avez pas le choix, mais de mettre en utf8. Je pense que la prise de distance doit être d'utiliser chaîne de connexion, comme indiqué par Cobra_Fast ci-dessous. Utiliser PDO::prepare pour préparer vos instructions SQL avec des paramètres liés.
  • alors comment doit-on spécifier le classement en tant que "SET NAMES utf8 COLLATE utf8_unicode_ci"
InformationsquelleAutor Karem | 2010-12-05