sql >> Database >  >> RDS >> Mysql

PDO UTF-8-coderingsprobleem?

Dit:

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

is volkomen zinloos. Zie http://php.net/manual/en/ref.pdo- mysql.php . De MYSQL_ATTR_INIT_COMMAND wordt uitgevoerd direct nadat de verbinding tot stand is gebracht, niet later. Als u dit instelt op een reeds volledig gemaakt PDO-object, is het te laat en wordt het nooit uitgevoerd. Je moet het doorgeven aan de constructor:

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

Als alternatief, als uw PHP-versie dit ondersteunt, voegt u charset=utf8 . toe naar de DSN.




  1. Problemen met MySQL-replicatie oplossen:deel twee

  2. SQL QUERY Probleem met resultaatrangschikking

  3. SSHTunnelForwarder gebruiken om via SSH verbinding te maken met een MySQL-database

  4. SQL Between-clausule met strings-kolommen