我有一个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
}
}