2016-04-08 18 views
0

複数の結果を取得し、すべてをページに表示するクエリから結果を取得しようとしています。ただし、コンテンツは表示されません。私の推測は、私のループの私の構文の間違いです。しかし私は確信していません。PDOでクエリの結果を表示できません

//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

'die(mysql_error()); // TODO:より良いエラー処理 ' - うん、まあ...ここではmysql_ではなく、PDOのように"より良い "処理が必要なのは確かです。また、どのAPIを使用して接続しているのか、セッションを開始したのかわかりません。 –

答えて

2

呼び出す関数の後にかっこが必要です。

$comments = $result->fetchAll; 

は次のようになります。

$comments = $statement->fetchAll(); 

また、if ($result == FALSE)のチェックが前のこのラインでなければなりません。 PDOを使用している場合はmysql_error()を使用できません。$statement->errorInfo()を使用してください。または、接続でPDO::ERRMODE_EXCEPTIONを有効にすると、catchブロックが呼び出されます。次に、印刷するエラーメッセージに$db->errorInfo()を使用する必要があります。

+0

大変ありがとうございますが、フェッチはすべて非オブジェクト上で使用されているというエラーが表示されています –

+0

'$ statement-> fetchAll()'にする必要があります。 – Barmar

+0

助けてくれてありがとう、私は非常にこれに新しい、それは今、各コメントの値のための '配列'を表示していると私はエラーとして、任意のアイデアなぜこれが文字列変換に配列をしようとしている場合? –

関連する問題