-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

最も単純な方法で実行する必要がありますが、何らかの理由で最も複雑な方法になります。
本当に必要なのは

  • 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
    }
}
于 2013-03-31T05:20:18.337 に答える
0

使用できます$fetch->columnCount()。結果がない場合は、 が返され0ます。を使用することも可能かもしれません$fetch->rowCount()が、マニュアルではSELECTステートメントには推奨されていません。

于 2013-03-30T21:26:59.207 に答える