在做了一个while循环之后,检查是否有任何行,如果没有,则回显一些PDO

时间:2013-03-30 21:23:31

标签: php pdo

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

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

我有一种肮脏的方式:

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的结果?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你必须以最直接的方式做到这一点,但由于某种原因你做出了最复杂的方式 你真正需要的是

  • 从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
    }
}