Rolf B: mySQL: Fehler mit COLLATE

Beitrag lesen

Hallo Linuchs,

mysqli ist Martins Kennzeichenbeleuchtung. Hat nichts mit dem Problem zu tun, ist aber trotzdem irgendwann wichtig. Weil es eine technische Schuld ist, die Du irgendwann zahlen musst. Die mysql-Schnittstelle gibt's nur in PHP 5. PHP 5 ist tot. Es wird nicht mehr gewartet. Falls es Security-Bugs gibt, behebt sie niemand menr. Es ist gefährlich geworden, es einzusetzen. Aber deswegen hast Du keine Collation/Charset Probleme. Und es steht dir natürlich frei, auf deinen Geburtstag zu gucken und zu sagen: "Mein Nachfolger will auch noch Arbeit haben" (den Du nicht findest, oder wie war das?).

Richtig geantwortet hast Du jetzt nicht, aber ich lese es trotzdem raus, dass da zwei Commandline-Programme sind, die an entscheidender Stelle (DB-Verbindungsaufbau) gleich aussehen und trotzdem unterschiedlich reagieren. In dem einen funktioniert COLLATE 'utf8_bin', im anderen fliegt es raus weil Collation utf8_bin nicht mit Charset utf8mb4 kompatibel ist.

Richtig wiedergegeben?

Wenn's nicht am Programm liegt, woran dann? Das ist jetzt von hier aus die reine Hellseherei. Vermutlich hast Du Dich das alles auch schon gefragt, aber ich liste mal trotzdem auf.

  • Du connectest zur gleichen DB?
  • Du verwendest den gleichen User?
  • Hast Du ein init-statement in dem Maria-Äquivalent zur my.cnf?
  • Du machst das mit der gleichen PHP Instanz/Version?
  • Du machst das vom gleichen Computer aus?
  • Sind die Scripte im gleichen Ordner? Werden sie mit der gleichen php.ini gestartet? Includen sie die gleiche ../db/_db_connect.php Datei?

Bau mal ein, dass nach dem mysql_connect die Funktion mysql_client_encoding aufgerufen wird. Die liefert das eingestellt Charset. Unterscheidet sich was?

Probier mal, statt der SET NAMES Query die mysql_set_charset Funktion aufzurufen - das ist der vom Handbuch empfohlene Weg weil der MYSQL-Treiber das dann auch mitbekommt.

Irgendwo muss ja was anders sein. Der Küstennebel ist nur leider zu dicht, um durchzustochern. Oder ich bin vom Küstennebel zu dicht... hehehe.

Rolf

--
sumpsi - posui - obstruxi