Hallo,
ich habe eine mySQL Datenbank. Mit php will ich sie von meiner Seite dynamisch auf bestimmte Begriffe durchsuchen (diese werden per $_GET übergeben und in ein Array geschrieben). Hier ist der SQL-Befehl ($kat[$a] ist das Array)
$sql = 'SELECT * FROM
rechnung
WHEREKat
LIKE CONVERT(_utf8 ''.$kat[$a].'' USING latin1) COLLATE latin1_swedish_ci';
dieses Konstrukt sieht wüst aus und enthält einen elementaren Fehler.
Der elementare Fehler:
Benutzereingaben sind gemäß dem Kontext zu behandeln, in dem sie verwendet werden. Hier ist das der Kontext MySQL, also verwende mysql_real_escape_string(). Gegebenenfalls solltest Du zu Beginn Deines Skriptes die unsäglichen Magic Quotes eliminieren (falls Du Dich auf die verlässt), siehe entsprechender Link auf der verlinkten Handbuchseite.
Zum Rest:
Du solltest wissen, in welcher Kodierung Deine Daten in der entsprechenden Spalte gespeichert sind. Verwende diese Kodierung, um die Daten abzufragen. Konvertiere nicht wild umher.
Freundliche Grüße
Vinzenz