返回 PDO::FETCH_OBJ 循环中未找到任何记录的值


Return No Record Found Value in PDO::FETCH_OBJ Loop

我需要在我的 PDO::FETCH_OBJ 结果语句中添加一个 if/then,以便在查询为空时显示"未找到记录"消息。

我的工作查询:

          <?php
          $command  = "SELECT ";
          $command .= "id, ";
          $command .= "firstName, ";
          $command .= "FROM mytable ";
          $command .= "ORDER BY sortOrder";
          $STH = $DBH->query($command);  
          $STH->setFetchMode(PDO::FETCH_OBJ);  
          while($row = $STH->fetch()) { ?>
          <tr>
            <td><a href="view/?b=<?php echo $row->id; ?>"><?php echo $row->firstName; ?></a></td>
          </tr>
          <?php } ?>

我能够找到适用于数组的类似代码,但我无法让它与上面的FETCH_OBJ代码一起使用。

这是类似的代码,说明了我想实现的 if/then:

  $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
  $stmt->execute(array('id' => $id));
  $result = $stmt->fetchAll();
  if ( count($result) ) {
    foreach($result as $row) {
      print_r($row);
    }  
  } else {
    echo "No rows returned.";
  }

我是PDO的新手,所以我确定这是一个上下文问题,我只是无法让它工作。

设置一个变量以确定在循环过程中是否找到任何行。

$no_rows_found = true;
while ($row = $STH->fetch() {
    $no_rows_found = false;
    ...
}
if ($no_rows_found) {
    echo "No rows found";
}