Mysql
 sql >> Database >  >> RDS >> Mysql

Best practices in PHP e MySQL con stringhe internazionali

Al primo sguardo a http://www.nicknettleton.com/ zine/php/php-utf-8-cheatsheet Penso che manchi una cosa importante (forse l'ho trascurata). A seconda dell'installazione e/o della configurazione di MySQL, devi impostare la codifica della connessione in modo che MySQL sappia quale codifica ti aspetti dal lato client (ovvero il client lato della connessione MySQL, che dovrebbe essere lo script PHP). Puoi farlo emettendo manualmente un

SET NAMES utf8

query prima di qualsiasi altra query inviata al server MySQL.

Se stai utilizzando PDO sul lato PHP, puoi impostare la connessione per emettere automaticamente questa query ad ogni (ri)connessione utilizzando

$db=new PDO($dsn, $user, $pass);
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");

durante l'inizializzazione della connessione db.