Ankündigung

Einklappen
Keine Ankündigung bisher.

PDO::bindValue geht nicht

Einklappen

Neue Werbung 2019

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

  • PDO::bindValue geht nicht

    Hallo zusammen,

    ich bin ehrlich am verzweifeln!
    Ich muss PDO verwenden. Habe aber KEIN Array, dass ich ins execute() übergeben kann, sondern nur einen einzigen Parameter. Allerdings bekomme ich ein leeres Ergebnis zurück

    PHP-Code:
    $string $_GET["id"];
    $q $db->prepare("
        SELECT `id`,`action`,`timestamp`,`username`,`details`
        FROM `log`
        WHERE `details` LIKE '%\"id\":\":v\"%'
        ORDER BY `timestamp` DESC
    "
    );
    $q->bindValue(':v',$string);
    $q->execute(); 
    Wenn ich aber das so mache, bekomme ich die richtigen Ergebnisse zurück, was aber nicht unbedingt eine sichere Methode darstellt:

    PHP-Code:
    $string $_GET["id"];
    $q $db->prepare("
        SELECT `id`,`action`,`timestamp`,`username`,`details`
        FROM `log`
        WHERE `details` LIKE '%\"id\":\""
    .$string."\"%'
        ORDER BY `timestamp` DESC
    "
    );
    $q->execute(); 
    Bitte um Hilfe!

  • #2
    Mit Parametern kannst du nicht rum-konkatenieren.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Ich würde sagen...

      Code:
      LIKE '%"id":":v"%'
      Hier sind die Hochkommata bereits enthalten, die werden aber beim binden vom Treiber automatisch hinzugefügt (wenn der Typ PDO::PARAM_STRING lautet, was defaultmäßig der Fall ist).

      Dadurch sieht es nachher so aus (z.B. :v = 4711). Beachte genau die einfachen und doppelten Hochkommata...
      Code:
      LIKE '%"id":"'4711'"%'
      Probiers mal so:
      PHP-Code:
      $q->bindValue(':v',$stringPDO::PARAM_INT); 
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Da musst du wenn schon CONCAT() verwenden.

        Kommentar


        • #5
          Vielen lieben Dank Euch!
          Werde gleich mal testen.

          Kommentar

          Lädt...
          X