Erkennungsroutine Feldwerte

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erkennungsroutine Feldwerte

    Hallo,

    mich würde interessieren, wie bei einer MySQL-Abfrage der MySQL-Server die Feldwerte erkennt?

    PHP-Code:
    "UPDATE tabelle SET feld1 = 'a', feld2 = 123, feld3 = 'abc\'de' WHERE id = 1" 
    Ich möchte mir gerne eine Routine schreiben, die automatisch alle Strings in einer UPDATE- oder INSERT-Abfrage erkennt und durch ne eigene Funktion jagd und zurückgibt:
    PHP-Code:
      function in($string) {
        if(
    get_magic_quotes_gpc() == 1) {
          
    $string stripslashes($string);
        }
        
        
    $string mysql_escape_string($string);
        
    $string htmlentities($string);
        
        return 
    $string;
      } 
    Jetzt dachte ich, gehe ich mit preg_replace und regulären Ausdrücken da rann, aber dann fällt mir auf, dass ja im Text ein ' vorkommen könnte. natürlich könnte mann dann nach " = ' " und nach "', " suchen, aber dies könnte ja dummerweise irgendwann in irgendeinem Text auch mal vorkommen!

    Also: Wie kann ich aus einer MySQL-INSERT/UPDATE-Abfrage die Strings auslesen, durch meine Funktion jagen und wieder in die Abfrage einfügen?


    Vielen Dank

  • #2
    Re: Erkennungsroutine Feldwerte

    Wozu soll das gut sein?
    Damit treibst du m.E. mehr Aufwand, als verhältnismäßig wäre.

    Wenn du deine Query dynamisch zusammensetzt - dann maskiere die Daten dabei für die Schnittstelle passend.

    Und sonst könnte man auch mysqli nutzen - das übernimmt beim preparen eines statements die Maskierung automatisch.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hi,

      danke für die Antwort.
      Ich hab mir gestern meine $db->escape() funktion nochmals genauer angeschaut und festgestellt, dass sie beim Maskieren auch auf magic_quotes überprüft, was ich aber bereits an jedem Dateianfang mache! Also doppelt gemoppelt.

      Ich schaue mir mal mysqli an, aber wahrscheinlich bleibe ich bei der manuellen Maskierung.

      Vielen Dank

      Kommentar

      Lädt...
      X