Ankündigung

Einklappen
Keine Ankündigung bisher.

DELETE mit PDO

Einklappen

Neue Werbung 2019

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

  • DELETE mit PDO

    Hi,

    ich frage mich gerade welches der vier Varianten der "Bessere" weg ist:

    PHP-Code:
    // execute array
    $stmt $db->prepare('DELETE FROM tabelle WHERE id = :id');
    $stmt->execute(array(':id' => $_GET['id'])); 
    PHP-Code:
    // bindValue
    $stmt $db->prepare('DELETE FROM tabelle WHERE id = :id');
    $stmt->bindValue(':id'$_GET['id'], PDO::PARAM_INT);
    $stmt->execute(); 
    PHP-Code:
    // binParam
    $stmt $db->prepare('DELETE FROM tabelle WHERE id = :id');
    $stmt->bindParam(':id'$_GET['id'], PDO::PARAM_INT);  
    $stmt->execute(); 
    PHP-Code:
    // ?
    $stmt $db->prepare('DELETE FROM tabelle WHERE id = ?');
    $stmt->bindParam(':id'$_GET['id'], PDO::PARAM_INT);
    $stmt->execute(); 
    Oder anders gefragt, welche Variante bevorzugt Ihr und warum ?

    Mein persönlicher Favorit ist ja Variante 1, nur möchte ich die nicht weiter verwenden, wenn, was auch immer, dagegen spricht.

    gruß doowoop

  • #2
    Ich bevorzuge auch Variante 1, wobei bindValue und bindParam verschiedene dinge tun, da das eine (bindParam glaube ich) die Variable als Referenz nimmt, d.h. du kannst die Variable ändern und gleich wieder executen ohne erneut bindParam aufzurufen.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Ich benutze nur noch sehr selten PDO direkt.

      PHP-Code:
      $beans R::find('tabelle''`id`= :id', [ ':id' => $_GET['id'] ]);
      R::trashAll($beans); 
      PHP-Code:
      R::exec('DELETE FROM `tabelle` WHERE `id` = :id', [ ':id' => $_GET['id'] ]); 
      Ansonsten: Parameter bindet man nur dann wenn man die Variablen für resultate wiederverwenden will. Da mit Superglobals zu arbeiten kann ziemlich blöde enden.
      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

      Kommentar


      • #4
        hey tr0y,

        ich hab deinen Code mal ausprobiert, er funktioniert nicht

        Kommentar


        • #5
          So, wie sie da stehen, nummer 1. Die anderen halt je nachdem, was grade besser passt.
          [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

          Kommentar


          • #6
            hey tr0y,

            ich hab deinen Code mal ausprobiert, er funktioniert nicht
            Funktioniert nicht bedeutet was? Hast du überhaupt RedBeans eingebunden? http://redbeanphp.com/
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              hi hausl,

              tr0y weis schon wie ich das meine "kryptisch"

              Kommentar


              • #8
                Zitat von doowoop Beitrag anzeigen
                hi hausl,

                tr0y weis schon wie ich das meine "kryptisch"
                Ganz ehrlich ? Wenn du auch nur annähernd weiterkommen willst, entferne das Wort kryptisch aus deinem Wortschatz und erweitere deinen Horizont.
                [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                Kommentar


                • #9
                  moin tr0y,

                  ich muss bei der "Standard" Schreibweise bleiben, denn das ist Code den ich Lesen, Bearbeiten und weitergeben kann.

                  Gewöhne ich mir jetzt einen "anderen Stiel" an, bin ich genau auf die angewiesen, die sich damit auskennen und den Code weitergeben ist auch nicht mehr.

                  Es gibt viele Wege "Hallo Welt" auszugeben,
                  PHP-Code:
                  <?php
                  echo 'Hallo Welt';
                  ?>
                  ist mir der liebste, wenn du verstehst was ich meine

                  Kommentar


                  • #10
                    Klar versteh ich dich, aber du wirst nicht ewig bei Vanilla-PHP bleiben können.

                    PHP-Code:
                    <?= 'Hallo Welt' ?>
                    http://platesphp.com/
                    http://platesphp.com/templates/variables/

                    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                    Kommentar


                    • #11
                      Plates sieht gut aus

                      Aber warum meinst du, das ich nicht lange bei Vanilla PHP bleiben kann ?

                      Ich hab ja nicht vor so was wie Facebook oder Amazon zu Programmieren, ein Blog oder kleines CMS bekomme ich schon mit wenig "Vanilla PHP" Code hin und das mit ebenso wenig Dateien.

                      An OOP werde ich aber scheinbar nicht vorbei kommen und das bin ich gerne bereit noch zu Lernen.

                      gruß doowoop

                      Kommentar


                      • #12
                        Dann sei gewarnt, das kryptische da ist OOP.
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar


                        • #13
                          Naja, nicht so richtig
                          ::
                          [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


                          • #14
                            Zitat von nikosch Beitrag anzeigen
                            Naja, nicht so richtig
                            Spätestens wenn Laravel bekniet wird akzeptiert man das static calls OOP sind.
                            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                            Kommentar

                            Lädt...
                            X