Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PDO INSERT aber richtig

Einklappen

Neue Werbung 2019

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

  • [Erledigt] PDO INSERT aber richtig

    hi,

    ein INSERT sieht bei mir momentan so aus:
    PHP-Code:
    $stmt $db->prepare('INSERT INTO kategorie (titel, text) VALUES (:titel, :text)') ;
    $stmt->execute(array(':titel' => $titel':text' => $text)); 
    Jetzt finde ich aber immer eher solche Beispiele:
    PHP-Code:
    $sql "INSERT INTO kategorie (titel, text) VALUES (:titel, :text)";
    $stmt $db->prepare($sql);
    $stmt->bindParam(':titel'$_POST['titel'], PDO::PARAM_STR);      
    $stmt->bindParam(':text'$_POST['text'], PDO::PARAM_STR);
    $stmt->execute(); 
    Oder auch mal sowas:
    PHP-Code:
    $stmt->bindValue(':titel'$titel); 
    Ich möchte einfach nur mal eben "Sicher" was in die Datenbank schreiben, aber dann gleich "Richtige" nur mit welcher Art ?

    gruß Gianna


  • #2
    Sowohl als auch. So wie dein erstes Beispiel aussieht nutze ich es meistens auch.
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      Ich beschäftige mich erst seit ein paar Tagen mit PDO und weiß um die Vorteile von "bindParam", daher bin ich auch etwas irritiert und befürchte, das bei mir nicht "escaped" wird.

      gruß Gianna

      Kommentar


      • #4
        Wenn du die Parameter an ein Prepared Statement bindest musst du nichts escapen.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Zitat von tkausl Beitrag anzeigen
          Wenn du die Parameter an ein Prepared Statement bindest musst du nichts escapen.
          Ich glaube das auch genau so in dem Tutorial gelesen zu haben.

          vielen Dank euch beiden

          Kommentar


          • #6
            An array of insert values (named parameters) don't need the prefixed colon als key-value to work.
            Quelle: PDOStatement::execute
            PHP-Klassen auf github

            Kommentar


            • #7
              hi jspit,

              mal den Translator angeworfen
              Eine Reihe von Einsatz-Werte (benannte Parameter) brauchen nicht die vorangestellten Doppelpunkt ALS Schlüssel-Wert zu arbeiten.
              nix von "Escapen" oder "binden" keins dieser Schlagwörter die ich als Leihe verstehe

              Kommentar


              • #8
                Frei übersetzt:
                Das Array mit den zu ersetzenden Werten für benannte Parameter braucht im Schlüssel kein Doppelpunkt um richtig zu arbeiten.
                Das funktioniert also auch:
                PHP-Code:
                $stmt $db->prepare('INSERT INTO kategorie (titel, text) VALUES (:titel, :text)') ; 
                $stmt->execute(array('titel' => $titel'text' => $text)); 
                Dies kann Arbeit ersparen, wenn die Schlüssel schon irgendwie vorliegen und kein Doppelpunkt rangebastelt werden muss.

                LG jspit
                PHP-Klassen auf github

                Kommentar

                Lädt...
                X