Ankündigung

Einklappen
Keine Ankündigung bisher.

Form-Element mit einem Element aus einer SQL-Datenbank ausfüllen funktioniert nicht.

Einklappen

Neue Werbung 2019

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

  • Form-Element mit einem Element aus einer SQL-Datenbank ausfüllen funktioniert nicht.

    Hallo,

    ich fange mal gleich an.
    Es soll ein Formular abgeschickt werden. Das Feld Autor soll dabei gleich mit dem Namen des eingeloggten Users, der in der sql datenbank eingetragen ist, ausgefüllt sein.
    Die Zeile
    PHP-Code:
    <td><input type="text" value="<?php $db->getUserName() ?>" readonly /></td>
    soll dafür sorgen.

    Die Funktion sieht so aus:

    Nun gibt es folgende Fehlermeldung, witzigerweise wird das in das Feld Autor eingetragen,
    <br /><b>Notice</b>: Undefined property: PDOStatement::$execute in <b>C:\xampp\htdocs\php\mysql.php</b> on line <b>118</b><br /><br /><b>Notice</b>: Trying to get property of non-object in <b>C:\xampp\htdocs\php\mysql.php</b> on line <b>122</b><br />
    Hier nun die mysql.php:
    http://pastebin.com/Tuc5peNY

    und hier die new_article.php
    http://pastebin.com/WN9Qa3kw

    Habt ihr Ideen?
    Einloggen klappt, die Session id wird auch erstellt und wenii ch die function getUserName mit einem echo vor der $sid ändere, also so:
    PHP-Code:
    function getUserName() {
            
            
    $stmt self::$_db->prepare("SELECT name FROM users WHERE :session");
            echo 
    $sid session_id();
            
    $stmt->bindParam(":session"$sid);        
            
    $stmt->execute;
            
            
    $user $stmt->fetch(PDO::FETCH_OBJ);
            
            
    $user->name ;
        
        } 
    dann wird im Feld Autor die sessioID ausgegeben.

    Für Hilfe wäre ich sehr dankbar.

  • Esus
    antwortet
    [geschlossen] Auflösung, Fehler gefunden.

    Danke für die Hinweise!

    Es muss in meinem Falle so heißen:
    PHP-Code:
    WHERE session=:sid 
    und natürlich

    PHP-Code:
    $stmt->execute(); 
    Doch hinzu kommt noch diese Veränderung
    PHP-Code:
    $stmt->bindParam(":sid"$sid); 
    So das die Funktion getUserName wie folgt aussieht:
    PHP-Code:
    function getUserName() {
            
            
    $stmt self::$_db->prepare("SELECT name FROM users WHERE session=:sid");
            
    $sid session_id();
            
    $stmt->bindParam(":sid"$sid);        
            
    $stmt->execute();
            
            
    $user $stmt->fetch(PDO::FETCH_OBJ);
            
            return 
    $user->name ;
        
        } 
    Und hier nochmal die mysql.php in Gänze...
    http://pastebin.com/JxaytY80


    Vielen Dank tkausl!

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Erstens: Deine Query enthält einen Fehler.
    Code:
    WHERE :session
    ergibt einfach keinen Sinn.
    Zweitens:
    PHP-Code:
    $stmt->execute 
    Execute ist keine Variable sondern eine Methode.

    Einen Kommentar schreiben:

Lädt...
X