Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Methode

Einklappen

Neue Werbung 2019

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

  • Problem mit Methode

    Hallo, folgendes bereitet mir Probleme:

    PHP-Code:
    public function getElementById($element$id) {
          
    $pdoparams = array(
                            
    ':element' => $element,
                            
    ':id' => $id
                            
    );
          
          
    $sql "SELECT :element FROM news WHERE id=:id";
                
    $stmt MyDB::getInstance()->prepare($sql);
                
    $stmt->execute($pdoparams);
                
                
    $result $stmt->fetchAll();
                return 
    $result;
        } 
    PHP-Code:
    $bla = new Article();
    var_dump($bla->getElementById("title"2)); 
    Ausgabe:

    array(1) { [0]=> array(1) { ["title"]=> string(5) "title" } }

    Anstatt title, welches der columnname ist, sollte dort eigentlich der inhalt stehen.. findet ihr vielleicht den Fehler? Wahrscheinlich wieder ein dummer noob-fehler

    mfg
    dennito
    Anwendungsentwicklung: Python, C, C++, Java
    Webentwicklung: (X)HTML, CSS, PHP, MySQL

  • #2
    Wahrscheinlich weil :element escaped wird. Heißt es steht am Ende etwa so im Query: 'title' somit ist es keine Spalte mehr sondern ein Wert, heißt MySQL gibt diesen Wert auch zurück! Daher solltest du die Spalte nicht über prepare() einbinden sondern direkt rein schreiben. (SQL Injection ist dann aber möglich sollte der Spaltenname nicht entsprechend überprüft werden.

    Kommentar

    Lädt...
    X