Dukanos Geschrieben 27. Dezember 2006 Teilen Geschrieben 27. Dezember 2006 Hallo Leute, ich versuche über ein Suchfeld mit PHP eine Tabelle zu durchsuchen. Die Funktion in der DB-Zugriffsklasse sieht so aus: public function findUser($value) { $result = mysql_query("SELECT * FROM customer WHERE (user_name LIKE %'".$value."'%) OR (first_name LIKE %'".$value."'%) OR (family_name LIKE %'".$value."'%) OR (street LIKE %'".$value."'%) OR (house_no LIKE %'".$value."'%) OR (zip_code LIKE %'".$value."'%) OR (city LIKE %'".$value."'%) OR (creditcard_no LIKE %'".$value."'%) OR (email LIKE %'".$value."'%)") or die (mysql_error()); return $result; } Allerdings wirft er mir immer den Fehler: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%'suchbegriff'%) OR (first_name LIKE %'suchbegriff'%) OR (family_name LIKE %'suchbegriff'%) OR (street LIKE' at line 1 Serverversion ist: 5.0.24a Ich hab nichts dazu gefunden... also jedenfalls nichts, was mir sagt, dass der obige code falsch wäre. Hat jemand nen Tipp? Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 27. Dezember 2006 Teilen Geschrieben 27. Dezember 2006 Setz mal die % in die einfachen Anführungszeichen. WHERE (user_name LIKE '"%.$value.%"') Ich kann leider kein PHP, aber ich hoffe, du verstehst, was ich meine. Im resultierenden SQL-String müssen die % auf jeden Fall zwischen die Anführungszeichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 27. Dezember 2006 Teilen Geschrieben 27. Dezember 2006 Hallo, schieb die % Zeichen zwischen ' und " und zwischen " und '. Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dukanos Geschrieben 27. Dezember 2006 Autor Teilen Geschrieben 27. Dezember 2006 Gnarf :-) Dankeschön Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
derJan Geschrieben 28. Dezember 2006 Teilen Geschrieben 28. Dezember 2006 Je nach Einsatzgebiet deiner Anwendung solltest du dir Gedanken machen über SQL-Injection und ob du nicht besser Stored Procedures verwenden solltest... z.B. About Security #13: Mit Stored Procedures gegen SQL-Injection - entwickler.com Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dukanos Geschrieben 28. Dezember 2006 Autor Teilen Geschrieben 28. Dezember 2006 Stored Procedures sind in der Überlegung gewesen, aber entspricht imho nicht der Trennung von Logik und Datenspeicherung. Mal davon abgesehen kann man mit trim(), striptag() etc. auch schon einiges abfangen. Und die Anwendung dient nur zur Anschauung, also wird nie einem hacker-angriff ausgesetzt werden :-) Danke trotzdem für den Hinweis Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.