2016-05-04 261 views
0

このコードでコメントページを作成しようとしていますが、エラーが発生します。ここでPHPの致命的なエラー:PDOStatement型のオブジェクトを配列として使用できません

はコードです:

$query = ("SELECT * FROM comment ORDER BY id DESC"); 

    $getquery = $connection->query($query); 

    while($rows = ($getquery)) 
    { 

     $id = $rows['id']; 
     $names = $rows['name']; 
     $comment = $rows['comment']; 

     echo $name . '<br/>' . $comment . '<br/>' . '<br/>' ; 
    } 

そして、ここではエラーです:

線61がある

PHP Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array in E:\utsdata\2T\2107982859\comment.php:61

:へ$id = $rows['id'];

+0

行61 - > $ id = $行['id']; 'while'ではなく' –

+0

'foreach'です。 – mario

+0

行を 'フェッチする '必要があります:http://php.net/manual/en/pdostatement.fetch.php – AbraCadaver

答えて

2

1)変更

$getquery = $connection->query($query); 

$getquery = $connection->prepare($query); 

2)変更

while($rows = ($getquery)) 

while ($rows = $getquery->fetch(PDO::FETCH_BOTH)) { 

〜3)$getquery->execute();

更新されたコードを追加します

$query = ("SELECT * FROM comment ORDER BY id DESC"); 

$getquery = $connection->prepare($query); 
$getquery->execute(); 
while($result = $getquery->fetch(PDO::FETCH_BOTH);) 
{ 

    $id = $rows['id']; 
    $names = $rows['name']; 
    $comment = $rows['comment']; 

    echo $name . '<br/>' . $comment . '<br/>' . '<br/>' ; 
} 
+0

OPはなぜこれらの変更を行うべきですか? ***良い答え***は、何が行われたのか、それがなぜOPのためだけでなく、将来の訪問者のためにそうした方法で行われたのかについての説明を常に持っています。 –

+0

これも壊れています。クエリはそれだけで準備されますが、実行されることはありません。したがって、行は返されません。 (PDOイテレータを利用するのではなく、 ' - > fetch'の愚かな主張に加えて) – mario

+0

私のコードを更新しました。 @marioをご覧ください。 –

関連する問題