无法使用PDO

时间:2016-04-08 15:59:49

标签: php html mysql 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;
      }

1 个答案:

答案 0 :(得分:2)

在函数调用后需要括号。

$comments = $result->fetchAll;

应该是:

$comments = $statement->fetchAll();

此外,if ($result == FALSE)的检查应该 此行之前。如果您正在使用PDO,则无法使用mysql_error(),您应该使用$statement->errorInfo()。或者您应该在连接上启用PDO::ERRMODE_EXCEPTION,并且将调用catch块。然后,您应该在其打印的错误消息中使用$db->errorInfo()