Ankündigung

Einklappen
Keine Ankündigung bisher.

% in SQL Anweisungen die durch vsprintf() verarbeitet werden

Einklappen

Neue Werbung 2019

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

  • % in SQL Anweisungen die durch vsprintf() verarbeitet werden

    Hallo liebe Gemeinde,

    ich habe folgendes Problem. Um SQL Injections in meiner Webseite zu umgehen, hab ich dafür eine Funktion geschrieben. Ungefähr so:

    PHP-Code:
    <?php
    $sSql 
    sprintf("SELECT `col1`, `col2` FROM `table` WHERE `id` = %u AND `name` = '%s'"$_GET['id'], $this->_quoteValue($_GET['name']));
    ?>
    nun habe ich folgendes Problem. Wenn ich jetzt eine SQL Anweisung habe in der in der WHERE Anweisung ein LIKE vorkommt, versucht sprintf() dieses natürlich mit zu verarbeiten.

    Bsp:
    Code:
    SELECT `Id` FROM `tabelle` WHERE `name` LIKE '%wurst%'
    bei mir müsste das dann ja so aussehen.
    Code:
    SELECT `Id` FROM `tabelle` WHERE `name` LIKE '%%s%'
    wie kann ich php begreiflich machen, dass es das erste und das letzte % "in ruhe lassen soll" ??

    habs schon mit / oder \ versucht, oder auch %%.. aber das funktioniert alles nicht. und bei der suche nach eine lösung, hab ich nichts gefunden.

    ich würde mich freuen, wenn da jemand was wüsste.
    viele grüße

    lindner

  • #2
    %% ist aber richtig. Die Lösung wäre dann bspw.
    Code:
    SELECT `Id` FROM `tabelle` WHERE `name` LIKE '%%%s%%'
    Zitat von lindner
    Hallo liebe Gemeinde
    Amen.
    .
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Re: % in SQL Anweisungen die durch vsprintf() verarbeitet we

      Zitat von lindner
      und bei der suche nach eine lösung, hab ich nichts gefunden.
      Such das nächste mal zuerst im Manual:
      http://de.php.net/sprintf
      Jede der Formatierugs-Anweisungen besteht aus einem Prozent-Zeichen (%), gefolgt von einem oder mehrereren der folgenden Elemente:
      [..]
      % - ein Prozent-Zeichen ("%"). Es ist kein Argument erforderlich.
      Es ist ganz einfach:
      Google -> "sprintf sitehp.net" -> Fertig.

      Kommentar


      • #4
        Meistens reicht scho "php [funktiosname]"
        Nicht jeder Fehler ist ein Bug.

        Kommentar


        • #5
          Ja dann landet man manchmal auf irgendwelchen phpforum.de oder phpcenter.de Manual-Kopien, deren Aktualität bestimmt nicht besser als das Original ist.

          Kommentar

          Lädt...
          X