Er zijn twee verschillende tekensets in het geding:
- de codering waarin MySQL aanneemt dat strings door de client worden verzonden (
character_set_client
); en - de codering waarin MySQL zijn antwoorden verzendt (
character_set_results
).
Om de huidige waarde van deze variabelen vast te stellen met behulp van PDO, kunt u de resultaten ophalen van de relevante SHOW VARIABLES
uitspraak; bijvoorbeeld:
$qry = $db->query("SHOW VARIABLES LIKE 'character_set_client'");
De documentatie voor mysql_client_encoding()
is enigszins dubbelzinnig, zoals het stelt:
Een dergelijke serversysteemvariabele bestaat echter niet:dus ik weet niet zeker welke deze zou retourneren.
Ten slotte, in plaats van een MYSQL_ATTR_INIT_COMMAND
, kunt u uw gewenste tekenset specificeren in de DSN (zoals vermeld in de handleiding
):
$db = new PDO("mysql:dbname=$db;host=$host;charset=$charset", $user, $password);