2016-04-08 18 views
0

Birden çok sonuç alması ve hepsini sayfada göstermesi gereken bir sorgudan sonuçlar almaya çalışıyorum. Ancak içeriğin hiçbirini göstermiyor. Benim tahminim benim sözdizimdeki bir hata benim için. Ama emin değilim.PDO ile sorgudan sonuç görüntülenemiyor

//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: Daha iyi hata işleme - Evet, peki, PDO'da olduğu gibi, mysql_'de değil, "daha iyi" işlemeye ihtiyacınız var. Ayrıca, bağlanmak için hangi API'yi kullandığınızı veya oturumu başlattığınızı da bilmiyoruz. –

cevap

2

Çağrılacak bir işlevden sonra parantezlere ihtiyacınız vardır.

$comments = $result->fetchAll; 

olmalıdır:
$comments = $statement->fetchAll(); 

Ayrıca if ($result == FALSE) onay bu hat önce olmalıdır. Ve PDO kullanıyorsanız mysql_error() kullanamazsınız, $statement->errorInfo() kullanmalısınız. Ya da bağlantıda PDO::ERRMODE_EXCEPTION'u etkinleştirmelisiniz ve catch bloğu çalıştırılacak. Daha sonra yazdırdığı hata iletisinde $db->errorInfo() kullanmanız gerekir.

+0

Çok teşekkürler, ama şimdi bir nesne olmayan nesne üzerinde kullanıldığını söyleyen bir hata alıyorum –

+0

'$ statement-> fetchAll()' olmalıdır. – Barmar

+0

yardım için teşekkürler, ben çok yeni, her yorumun değeri için 'Array' görüntüleniyor, ve ben hata olarak string dönüştürme için bir dizi deniyorum söylüyor, herhangi bir fikir neden budur dava? –