Pierre: Zeichenkodierung zwischen PHP und MySQL

Beitrag lesen

Wie genau machst du das? Ist dir die Sonderbedeutung des : im Zusammenhang mit Prepared Statements in PDO bekannt?

Eigentlich, ja, hatte ich aber ausgeblendet.

Die Daten sollten in UTF-8 vorliegen.

Prüfe sowas bitte nach. Kontrollausgaben mittels var_dump() zeigen schonmal eine String-Länge in Bytes an. Bei einem UTF-8-Ä wären das 2 Bytes. Mit bin2hex() kann man die Bytewerte direkt kontrollieren.

Hab's überprüft, die Daten liegen in UTF-8 vor. Habs allerdings mit mb_check_encoding() geprüft.

Aber nach dem Connecten und vor dem Insert setze ich die folgenden Anweisung an die Datenbank ab:

Das Problem, dass ":zahl", also z.B. ":3", zu einem Fragezeichen konvertiert wird, tritt auch auf, wenn ich einen HTML-Link im String habe:

Ich tippe auf Prepared Statements.

Tja, ich habe gar keine prepared statements benutzt. Jetzt mache ich's und es funktioniert wunderbar. Kein Problem mehr.

Ich danke Euch beiden herzlichst,
beste Grüße,
Pierre