seba: SQL-Statement wird nicht richtig übergeben / ausgewertet

Beitrag lesen

Ahoi!

Problem: Ich führe ein Suchskript in einer WAMP-Umgebung aus. Wenn ich das Skript mit dem Browser (FF 2) laufen lasse, werden 2 Datensätze nicht angezeigt. Das SQL-Statement wird dabei aber korrekt übergeben, resp. wenn ich das Statement ausgebe (echo $sql;) und mit copy&paste als SQL-Befehl in phpmyadmin eingebe, werden alle Datensätze korrekt angezeigt.

An unterschiedlichen Zeichensätzen sollte es nicht liegen, die Tabelle verwendet latin1, LiveHTTPheaders sagt mir, dass ich utf8 versende. Ich habe zur Kontrolle das Skript geändert, das Resultat bleibt jedoch dasselbe.

Hat jemand eine Idee, an was das liegen könnte?

PHP:
$sql .= " AND (ka.nachname LIKE '".$_SESSION['nachname']."' OR ka.nachname LIKE '".htmlentities($_SESSION['nachname'])."' ) ";

Oder (mit Zeichensatz):
$sql .= "AND (ka.nachname LIKE CONVERT( _utf8 '".$_SESSION['nachname']."' USING latin1 ) OR ka.nachname LIKE CONVERT( _utf8 '".htmlentities($_SESSION['nachname'])."' USING latin1 ) ) ";

--> 2 Datensätze fehlen

SQL:
AND (ka.nachname LIKE 'müller' OR ka.nachname LIKE 'müller' )

Oder Oder (mit Zeichensatz):
AND (ka.nachname LIKE CONVERT( _utf8 'müller' USING latin1 ) OR ka.nachname LIKE CONVERT( _utf8 'müller' USING latin1 ) COLLATE latin1_swedish_ci )

-->korrektes Resultat