2016-04-08 11 views
0

Ich versuche, die Ergebnisse von einer Abfrage zu erhalten, die mehrere Ergebnisse erhalten und alle auf der Seite anzeigen soll. Es zeigt jedoch keinen Inhalt an. Meine Vermutung ist ein Fehler in meiner Syntax für mich Schleife. Aber ich bin unsicher.Ergebnisse von Abfrage mit PDO kann nicht angezeigt werden

//query to find comments about this map 
$query = " 
     SELECT 
      user_id, 
      comment 
     FROM map_comments 
     WHERE 
      map_id = :mapID 
     "; 

//query parameters 
$query_params = array(
    ':mapID' => $_SESSION['mapID'] 
); 

try 
{ 
    //execute query 
    $statement = $db->prepare($query); 
    $result = $statement->execute($query_params); 
    //get all results 
    $comments = $result->fetchAll; 
    if($result === FALSE) 
    { 
     die(mysql_error()); // TODO: better error handling 
    } 
} 
catch(PDOException $e) 
{ 
    die("failed to find comments"); 
} 

foreach($comments as &$comment) 
     { 
     echo $comment; 
     } 
+2

'sterben (mysql_error()); // TODO: Bessere Fehlerbehandlung '- Ja, naja ... auf jeden Fall braucht man eine" bessere "Handhabung, wie in PDO und nicht mysql_ hier. Wir wissen auch nicht, mit welcher API Sie sich verbinden oder ob Sie die Sitzung gestartet haben. –

Antwort

2

Sie benötigen Klammern nach einer Funktion, um es aufzurufen.

$comments = $result->fetchAll; 

sollte sein:

$comments = $statement->fetchAll(); 

Auch die Prüfung für if ($result == FALSE)vor diese Linie sein sollte. Und Sie können mysql_error() nicht verwenden, wenn Sie PDO verwenden, sollten Sie $statement->errorInfo() verwenden. Oder Sie sollten PDO::ERRMODE_EXCEPTION für die Verbindung aktivieren, und der catch-Block wird aufgerufen. Sie sollten dann $db->errorInfo() in der Fehlermeldung verwenden, die es druckt.

+0

Vielen Dank, aber jetzt bekomme ich eine Fehlermeldung, dass holen alle auf einem Nicht-Objekt verwendet wird –

+0

Es sollte '$ Anweisung-> fetchAll()' sein. – Barmar

+0

danke für die Hilfe, ich bin sehr neu, es zeigt jetzt "Array" für den Wert jedes Kommentars, und es heißt, ich versuche ein Array String-Konvertierung als der Fehler, jede Idee, warum dies der ist Fall? –

Verwandte Themen