在非对象上调用成员函数fetchObject()

时间:2012-08-15 21:40:56

标签: php pdo

在我的while循环中断。一直在阅读PHP手册,但无法弄清楚我在这里做错了什么...

$ pdo调用我的数据库连接

function getSelectedPhoto($the_selected_id) {
global $pdo;

$id = $the_selected_id;

$stmt = $pdo->prepare("SELECT handle, src FROM images WHERE id = :id LIMIT 1");
$vars = array(':id' => $id);
$result = $stmt->execute($vars);

if($result) {
    while($row = $result->fetchObject()) {
        echo '<img src="../' . $row->src . '" alt="image" /><br />';
        echo '<p id="handle">' . $row->handle . '</p>';
    } 
} else die("There was some problem");

}

1 个答案:

答案 0 :(得分:3)

根据手册“PDOStatement::execute”,execute() - 方法会返回truefalse,而不会返回结果:

  

成功时返回TRUE,失败时返回FALSE。

当然,这将导致在调用$result->fetchObject()时在非对象“上调用成员函数fetchObject()。

您的代码应该是这样的:

$result = $stmt->execute($vars);

if ($result) {
    while( $row = $stmt->fetchObject() ) {}
}