好的,我有2节课。 Photo class和PhotoMapper类。
Photo类包含所有值并输出它们。
PhotoMapper通过assign类将值设置为Photo类,如下所示:
$query = "SELECT * FROM users";
$query = $this->_pdo->prepare($query);
$query->bindValue(":id", $photo->id());
$query->execute();
$data = $query->fetch();
$photo->assign($data);
分配:
public function assign($data){
if (is_array($data)) {
foreach ($data as $name => $value)
{
$this->{'_' . $name} = $value;
}
}
}
现在我在哪里检查$ query-> rowCount()> 0?
我应该在foreach之后进入is_array,制作一个$ this-> rowCount = ..?
最好执行此检查?我想检查两个类之外的rowCount ..
$photo = new Photo($albumID, $photoID, $view, $userID);
$photoMapper->select($photo, $view);
它是如何在课外看的。如果select(上面的查询)没有找到任何行,我如何检查并输出错误?
我需要2个查询?一个要检查,一个选择它们?或?..
答案 0 :(得分:0)
好吧,如果你期望来自fetch操作的数据但是没有(你可以通过检查$data
是否有任何内容来查找),你应该抛出异常。以下代码段通常放在fetch:
// ...
$query->execute();
if ( !( $data = $query->fetch() ) ) {
throw new Exception('photo could not be loaded');
}
$photo->assign($data);
// ...
但是,如果您希望代码继续运行,则可以反转if
条件,并将assign调用放在语句中;
$query->execute();
if ( ( $data = $query->fetch() ) ) {
$photo->assign($data);
}