Tom: PHP MySQL Datenbank durchsuhen

Beitrag lesen

Hello,

$abfrage = "SELECT * FROM table WHERE data1 LIKE '%".$_POST[search]."%' or data2 LIKE '%".$_POST[search]."%'"; $ergebnis = mysql_query($abfrage);

Noch drei Anmerkungen:

  1. Sollten data1 und data2 verbatim aus dem Schema übernommen sein, möchte ich dir nahelegen, deine Datenbank ordentlich zu normalisieren.
  2. Der Code-Schnippsel oben ist anfällig für SQL Injections. Du solltest jede Benutzereingabe, egal woher sie kommt, sorgfältig überprüfen.
  3. Array-Identifier müssen gequotet werden, wenn es keine Konstanten sind (und noch in ein paar Spezialfällen nicht). Da du offenbar keinen Fehler gemeldet bekamst, solltest du in der php.ini (oder im Skript) error_reporting auf E_STRICT und display_errors auf On konfigurieren.

Und wenn wir schon mal bei der Schelte sind:
4) 'select *' sollte man wirklich nur verwenden, wenn man tatsächlich alle Spalten benötigt.
   anderenfalls sollte dafür "select $fieldlist" benutzt werden, wobei $fieldlist die Namen
   der gewünschten Spalten enthält. Bsp.:
   $fieldlist = " name, vorname, plz, order, index ";

Und auch wenn Vinzenz wieder meckert: Die Spaltennanmen würde ich bei mysql immer in Backticks einpacken lassen, wenn  das Statement automatisch gemeriert wird :-D

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de