Mailinglisten-Archive |
Benedikt Quirmbach schrieb: > Hallo, > > ich habe eine Tabelle mit Informationen zu Weinen. > > Nun möchte ich in der Tabelle nach Informationen suchen. Diese > identifiziere ich anhand des Namens und des Jahrganges der Weine. > > Dummerweise haben die Namen recht fantasievolle Namen, die > selbstverständlich auch fremdsprachig sind. So kann es vorkommen, > dass Namen sowohl Anführungszeichen als auch Hochkommata enthalten. > Und da komme ich etwas ins Schleudern... > > Ich programmiere das ganze in PHP und stelle auch die Anfragen > dynamisch zusammen. Eine SELECT-Anfrage sieht im Moment so bei mir aus: > > $query = 'SELECT * FROM weinliste WHERE NAME="' . mysql_escape_string > ($row_alleweine['NAME']) . '" AND JAHRGANG="' . $row_alleweine > ['JAHRGANG'] . '" ORDER BY PREIS'; > > Wenn ich diese Anfrage per PHP direkt an MySQL schicke, erhalte ich > eine Fehlermeldung bei bestimmten Weinen. Da geht's immer um die > Anführungszeichen oder Hochkommata. > > Zum Test habe ich mir $query auch mal im Browser ausgeben lassen, > kopiert und mit phpmyadmin ausprobiert. Da funktioniert sie... > > Kann mir jemand einen Tipp geben, wie ich das richtig kodiere? ' anstelle von " um strings backticks um Namen `` mysql_real_escape_string() anstelle von mysql_escape_string() und IMMER mysql_real_escape_string() auf ALLE Variablen: $query = " SELECT * FROM `weinliste` WHERE `NAME` = '" . mysql_real_escape_string($row_alleweine['NAME']) . "' AND `JAHRGANG` = '" . $row_alleweine['JAHRGANG'] . "' ORDER BY `PREIS`"; -- Sebastian Mendel www.sebastianmendel.de _______________________________________________ Allgemeine Infos zur Liste: http://www.4t2.com/mysql/ Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de
php::bar PHP Wiki - Listenarchive