Ankündigung

Einklappen
Keine Ankündigung bisher.

Prepared Statements ohne PDO geht das?

Einklappen

Neue Werbung 2019

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

  • Prepared Statements ohne PDO geht das?

    Prepared Statements ohne PDO? Geht doch oder? Bin gerade etwas verwirrt.

  • #2
    Seltsame Frage, denn Prepared Statments ist etwas das eine DB-Verbindungs-Komponente (DB-API) kann / nutzt. Aber ohne so einer geht es nicht, nein.

    Zuerst brauchst du sowas, wie zB PDO (https://www.php.net/manual/de/refs.database.php)
    Und dann kannst du - wenn es diese "kann" - auch Prep.Statements verwenden.

    Oder wie meinst du genau?

    Um Auto zu fahren brauchst du auch zuerst mal ein Auto (DB-Verbindung) So irgendwie erklärt.
    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


    • #3
      Einfach mal ins Handbuch schauen wäre keine Option gewesen?

      https://dev.mysql.com/doc/refman/8.0...tatements.html

      Kommentar


      • #4
        Johannes23

        Kannst du mal bitte den genauen Hintergrund erklären? Ich finde die Frage verwirrend. Man muss zuerst sowieso in PHP eine Verbindung herstellen um das dann zu verwenden. Oder du meinst ganz ohne PHP?
        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


        • #5
          Das kommt auf das DBMS an. PDO ist ja in erster Limie ein Wrapper und eine API.

          Mit Mysqli gehen auch prepared statments.
          Wenn du aber prepared statments mit PDO verwendest bist du weitgehend unabhängig vom DBMS da PDO auch für die DB emulieren kann.

          Kommentar


          • #6
            Zitat von protestix Beitrag anzeigen
            Das kommt auf das DBMS an. PDO ist ja in erster Limie ein Wrapper und eine API.

            Mit Mysqli gehen auch prepared statments.
            Wenn du aber prepared statments mit PDO verwendest bist du weitgehend unabhängig vom DBMS da PDO auch für die DB emulieren kann.
            Ich meinte schlicht und einfach: Muß man für DB-Abfragen via php unbedingt PDO verwenden oder geht das auch mit mysqli? Ich entnehme letzteres den Handbüchern (die ich natürlich zurate gezogen habe, Mr. hellbringer !), war aber durch die Vielzahl der Beiträge, wo quasi eine "Einheit" PDO/Prepared Statements zutage trat, verwirrt. Jetzt, wärend ich schreibe, sehe ich, daß protestix die Frage in meinem Sinne beantwortet hat:Kannst du das bestätigen, denn mehr wollte ich eigentlich gar nicht wissen (hier & jetzt...).
            Uups, das war jetzt eigentlich als Antwort auf hausl gedacht.

            Kommentar


            • #7
              Ja geht. Steht auch auch in der Doku. Schau dir die Begrifflichkeiten bitte mal an. Prepared Statments ist etwas das PDO, mysqli und noch viele andere Datenbank-APIs können. PDO ist eine alternative (imho die bessere, modernere mit klarerem Interface) API um auf eine DB zuzugreifen. Aber du kannst auch mysqli nehmen, mit oder ohne Prepared Statment. Aber am besten immer mit, dann bist du auf der sicheren Seite bzgl. SQL-Injections.
              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


              • #8
                Zitat von hausl Beitrag anzeigen
                Ja geht. Steht auch auch in der Doku.
                So habe ich es auch da raus gelesen. Aber wie gesagt, hier hörte sich das anders an.
                Schau dir die Begrifflichkeiten bitte mal an. Prepared Statments ist etwas das PDO, mysqli und noch viele andere Datenbank-APIs können. PDO ist eine alternative (imho die bessere, modernere mit klarerem Interface) API um auf eine DB zuzugreifen. Aber du kannst auch mysqli nehmen, mit oder ohne Prepared Statment. Aber am besten immer mit, dann bist du auf der sicheren Seite bzgl. SQL-Injections.
                Letzteres war ja der Grund, weshalb ich gefragt habe. Ich habe hier ein Riesenmenge an PHP-Funktionen mit DB-Zugriff via mysqli. Wo das notwendig war - und das war es lediglich in ca. 1/4 aller Fälle, eben wo es user-Eingaben waren - habe ich die Sachen dann eben mit mysqli_real_escape_string maskiert. Jetzt wollte ich es einfach ein bischen mehr vereinheitlichen - und prepared statements haben ja auch noch andere Vorteile.

                Kommentar


                • #9
                  Du kannst am besten (künftig) immer gleich Prep. Statments nutzen, dann muss man nicht nachdenken und hat immer eine einheitliche Linie und ist auf der sicheren Seite.
                  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


                  • #10
                    Zitat von hausl Beitrag anzeigen
                    Du kannst am besten (künftig) immer gleich Prep. Statments nutzen, dann muss man nicht nachdenken und hat immer eine einheitliche Linie und ist auf der sicheren Seite.
                    Eben, das war mein Gedanke. Nur wenn ich dazu jetzt aber auch noch PDO einsetzen würde/müsste, hätte ich ca. den doppelten Haufen an "Umstrickarbeit".

                    Aber so ist meine Frage jetzt erstmal beanwortet, vielen Dank und einen guten Rutsch!

                    Kommentar


                    • #11
                      Genau, du bleibst bei mysqli und nutzt dort/darunter/damit die P.S., hast du richtig erkannt.

                      Danke, dir ebefalls!
                      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

                      Lädt...
                      X