sql >> Base de Datos >  >> RDS >> Mysql

¿Problema de codificación PDO UTF-8?

esto:

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

es completamente inútil. Ver http://php.net/manual/en/ref.pdo- mysql.php . El MYSQL_ATTR_INIT_COMMAND se ejecuta inmediatamente después de establecer la conexión, no más tarde. Si configura esto en un objeto PDO ya completamente creado, es demasiado tarde y nunca se ejecuta. Necesitas pasarlo al constructor:

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

Alternativamente, si su versión de PHP lo admite, agregue charset=utf8 al DSN.