在执行while循环之后,检查是否有行,如果没有,则回显一些PDO


After doing a while loop, check if there are any rows, if not, echo something PDO

我有一个while循环从MySQL数据库中获取行

但是我想检查是否有行,如果表是空的,那么回显一个错误。

我有一个不太好的方法:

while($row = $fetch->fetch( PDO::FETCH_ASSOC ) $random[] = $row['a_column'] ) {
    if (count($random) == 0) {
    echo ' It's empty... ';
    } else {
echo $row['a_column'];
}

问题是我有很多列,我确信这样做是一种非常肮脏的方式…

我正在使用PDO,我不确定如何检查表中是否有任何行。

我如何发现表不包含任何行,如果没有,回显错误…如果是,则回显a_column?的结果。

谢谢!

您可以使用$fetch->columnCount()。如果没有结果,它将返回0。也可以使用$fetch->rowCount(),尽管手册不建议使用SELECT语句。

你必须用最直接的方式来做,但出于某种原因,你用了最复杂的方式。
你真正需要的是

  • 从DB
  • 获取数据
  • 检查是否有
  • 使用数据

所以,这就是

 //to get data from DB
$data = $fetch->fetchAll();
//to check if you got any
if (!$data) {
    // It's empty
} else {
    // to use the data
    foreach ($data as $row){
        //use it
    }
}
相关文章: