2015-07-20 140 views
0

我想打印一個查詢的所有結果,但出於某種原因,我得到以下錯誤:致命錯誤:調用成員函數fetch()布爾在H:\ Some-Location \線X打印PDO查詢結果

這是我的代碼:

<?php 
    $query = "SELECT adID FROM given WHERE toUser = :userid"; 
    $query_params = array(':userid' => $_SESSION['user']['ID']); 
    try 
    { 
     $stmt = $db->prepare($query); 
     $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex) 
    { 
     echo "Failed to run query: " . $ex->getMessage(); 
    } 

    while ($row = $result->fetch(PDO::FETCH_ASSOC)) 
    { 
     echo $row['adID']; 
    } 
?> 

有什麼不對?

回答

0

PDOStatement上的​​方法不返回結果,它僅在查詢成功或不成功時才發出信號(僅在不使用異常時纔有用)。

PHP Documentation

public bool PDOStatement::execute ([ array $input_parameters ]) 

你想要做的是使用PDOStatement本身來獲取數據:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    echo $row['adID']; 
} 

注:根據您當前的邏輯,循環甚至會執行當拋出異常時。嘗試從catch塊返回或將環路放在try塊內。