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

Problema di codifica PDO UTF-8?

Questo:

$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');

è del tutto inutile. Vedi http://php.net/manual/en/ref.pdo- mysql.php . Il MYSQL_ATTR_INIT_COMMAND viene eseguito subito dopo aver stabilito la connessione, non più tardi. Se lo imposti su un oggetto PDO già completamente creato, è troppo tardi e non verrà mai eseguito. Devi passarlo al costruttore:

new PDO(..., ..., ..., array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'))

In alternativa, se la tua versione di PHP lo supporta, aggiungi charset=utf8 al DSN.