Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema de codificação PDO UTF-8?


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

é totalmente inútil. Veja http://php.net/manual/en/ref.pdo- mysql.php . O MYSQL_ATTR_INIT_COMMAND é executado logo após a conexão ser estabelecida, não mais tarde. Se você definir isso em um objeto PDO já totalmente criado, será tarde demais e ele nunca será executado. Você precisa passá-lo para o construtor:
new PDO(..., ..., ..., array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'))

Como alternativa, se sua versão do PHP suportar, adicione charset=utf8 ao DSN.