在我的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");
}
答案 0 :(得分:3)
根据手册“PDOStatement::execute”,execute()
- 方法会返回true
或false
,而不会返回结果:
成功时返回TRUE,失败时返回FALSE。
当然,这将导致在调用$result->fetchObject()
时在非对象“上调用成员函数fetchObject()。
您的代码应该是这样的:
$result = $stmt->execute($vars);
if ($result) {
while( $row = $stmt->fetchObject() ) {}
}