Es handelt sich um zwei verschiedene Zeichensätze:
- die Kodierung, in der MySQL davon ausgeht, dass Strings vom Client gesendet werden (
character_set_client
); und - die Kodierung, in der MySQL seine Antworten sendet (
character_set_results
).
Um den aktuellen Wert dieser Variablen per PDO zu ermitteln, könnten Sie die Ergebnisse der entsprechenden SHOW VARIABLES
Aussage; zum Beispiel:
$qry = $db->query("SHOW VARIABLES LIKE 'character_set_client'");
Die Dokumentation für mysql_client_encoding()
ist etwas mehrdeutig, da es heißt:
Allerdings existiert keine solche Server-Systemvariable:also bin ich mir nicht sicher, welche sie zurückgeben würde.
Schließlich, anstatt einen MYSQL_ATTR_INIT_COMMAND
zu setzen , können Sie Ihren gewünschten Zeichensatz im DSN (wie erwähnt in das Handbuch
):
$db = new PDO("mysql:dbname=$db;host=$host;charset=$charset", $user, $password);