Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO-UTF-8-Kodierungsproblem?

Dies:

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

ist völlig sinnlos. Siehe http://php.net/manual/en/ref.pdo- mysql.php . Der MYSQL_ATTR_INIT_COMMAND wird direkt nach dem Verbindungsaufbau ausgeführt, spätestens jedoch. Wenn Sie dies auf ein bereits vollständig erstelltes PDO-Objekt setzen, ist es zu spät und es wird nie ausgeführt. Sie müssen es an den Konstruktor übergeben:

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

Wenn Ihre PHP-Version dies unterstützt, fügen Sie alternativ charset=utf8 hinzu zum DSN.