-1

我有一个从 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 的结果?

谢谢!

4

2 回答 2

0

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

于 2013-03-30T21:26:59.207 回答
0

您必须以最直接的方式进行操作,但由于某种原因,您必须以最复杂的方式进行操作。
你真正需要的是

  • 从数据库中获取数据
  • 检查你是否有任何
  • 使用数据

所以,给你

 //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
    }
}
于 2013-03-31T05:20:18.337 回答