Announcement

Collapse
No announcement yet.

Prepared Statements mit Select...Bitte um Hilfe!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prepared Statements mit Select...Bitte um Hilfe!

    Hallo An Alle! Ich bin momentan dabei SQL zu lernen und steh jetzt auf dem Schlauch wie ich ein prepared statement in meinen quellcode bekomme..ich hoffe es kann mir jemand helfen. Hier ist mein Ausgangscode:

    private $tabelle = "artikel";

    public function lesenAlleDatenGrp() {
    $sql = "SELECT artikel.anr,
    gruppen.gruppe,
    artikel.name,
    artikel.preis
    FROM artikel
    JOIN gruppen ON
    artikel.gnr = gruppen.gnr
    WHERE
    ORDER BY artikel.anr";
    $this->baueTeilnehmerTabelle($sql);
    }

    private function baueTeilnehmerTabelle($sql) {
    require_once("database.inc.php");
    if ($stmt = $pdo -> prepare($sql)) {
    $stmt -> execute();

  • #2
    Was soll den "prepared" sein? Also per übergebenen Wert in den SQL-String variabel sein. du hast einen feststehenden SQL, der zumal auch falsch ist, da keine where-Bedingung

    http://php.net/manual/de/mysqli.quic...statements.php

    Hier ein weiteres Beispiel
    http://php.net/manual/de/pdo.prepared-statements.php
    Nr. 3 mit variablen where...

    was auf deutsch

    https://www.php-einfach.de/mysql-tut...ed-statements/
    Zuletzt editiert von Christian Marquardt; 12.02.2019, 12:58.
    Christian

    Comment


    • #3
      Ich muss also bei dem code keine zusätzliche parameterbindung machen mit $stmt->bindParam ?? I steh grad voll auf dem schlauch

      Comment


      • #4
        Das weiß ich nicht. Weiß ja nicht was du machen willst. Wenn du einen festen SQL hast, wo sich die Abfragedaten nicht ändern, dann sicher nicht
        Willst du Eingaben aus einer Webseite in eine DB speichern, dann wäre das ratsam um SQL-Injektion vorzubeugen.
        In jedem Fall ist dein SQL-String falsch, da ein where ohne weitere Bedingung
        Christian

        Comment


        • #5
          Danke, die Where klausel war ein versehen. Es wird ja nur die Datenmenge abgefragt und anschließend als Tabelle ausgegeben, Also brauch ich prepared statements hauptsächlich nur wenn ich daten löschen/hinzufügen möchte in der datenbank sehe ich das richtig?

          Comment


          • #6
            Wenn du Abfragen dynamisch machen willst
            Beispiel
            Schleife über alle Benutzer
            select * from tabelle where benutzer=?
            Schleifenende
            oder
            wenn du SQL-Injektion bei Abfragen vermeiden willst
            Christian

            Comment


            • #7
              Danke für die Hilfe

              Comment

              Working...
              X