0

如果查询为空白,我需要在我的 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 的新手,所以我确定这是一个上下文问题,我只是无法让它工作。

4

1 回答 1

0

设置一个变量以确定您是否在循环期间找到任何行。

$no_rows_found = true;
while ($row = $STH->fetch() {
    $no_rows_found = false;
    ...
}

if ($no_rows_found) {
    echo "No rows found";
}
于 2013-10-05T06:27:24.630 回答