dedlfix: Wie nutze ich deutsche Umlaute richtig in PhP

Beitrag lesen

Tach!

Die Verbindung von PHP nach MySQL ist ein Socket.

Die Verbindung zwischen PHP und MySQL erfolgt über die MySQL-Client-Api, die Bestandteil von PHP ist. Welchen Weg die API-Funktionen nehmen, um letzlich mit dem Server zu kommunizieren, ist für PHP-Verwender nicht weiter relevant. Dass letztlich irgenwer irgendwelche Bytes übertragen muss, hat auch keinen Einfluss darauf, dass dem DBMS mitgeteilt werden muss, welche Kodierung diesem Bytestrom zugrundeliegt, damit es korrekt arbeiten kann.

Was die Verbindung zu DB betrifft: Die Kodierung wird allenfalls mit übermittelt, ansonsten werden da einfach nur Bytes übertragen. Nimm einen Sniffer wie Wireshark und guck Dir das Payload an was in Richtung MySQL rausgeht bzw. zurückkommt.

Richtig, aber mit der konkreten Übertragung hat der PHP-Verwender nichts am Hut. Man verwendet einfach die gegebenen mysqli-/PDO-Funktionen - und zwar mit Strings. Eine Empfehlung, in irgendeinen Byte-Modus zu wechseln, ist unangebracht, weil man sowas nicht tun muss. Es sei denn, man übernimmt selbst die Kommunikation auf Socket-Ebene und umgeht die eingebaute MySQL-Client-API. Aber wozu?

dedlfix.