Dette:
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
er fuldstændig meningsløst. Se http://php.net/manual/en/ref.pdo- mysql.php
. MYSQL_ATTR_INIT_COMMAND
udføres umiddelbart efter, at forbindelsen er etableret, senest. Hvis du indstiller dette på et allerede fuldt oprettet PDO-objekt, er det for sent, og det udføres aldrig. Du skal videregive det til konstruktøren:
new PDO(..., ..., ..., array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'))
Alternativt, hvis din PHP-version understøtter det, skal du tilføje charset=utf8
til DSN.