2017-02-02 4 views
-1

タイトルはほとんどすべてを言います。フェッチがテストする唯一の方法である場合、フェッチイテレータをリセットする方法はありますか?フェッチなしで見つかった少なくとも1つの行に対してpdo selectクエリをテストする方法はありますか?

+0

通常、カウントを必要とする場合は、SELECT COUNT(*)FROM ...クエリを実行します。とにかくすべてのデータを使用する予定だったら、fetchAllを使ってすべての行を取得し、それらのcount()を取得することもできます。通常、フェッチを使用したばかりのときに、コードで後で返された配列を使用することができます。 PDOStatement :: rowCountメソッドを試してみることもできますが、マニュアルで説明したようにselect文の行数を返すことは実際には保証できません。場合によっては動作する可能性があります。 –

+0

ダブではありません。イテレーターについて尋ねた私は最初のフェッチの後、これを思いついて、成功をテストしました。あなたがdupだったと思うものへのリンクを含めてください($ pending_fetch ||($ row = $ sth-> fetch ....))$ {$ pending_fetch = 0 – user116032

+0

私はそれを見つけられませんでした。私はプラグがあれば引っ張る準備ができています。あなたが挙げたものを読んだ。イテレーターの操作は考慮されていませんでした。 – user116032

答えて

-1

はい、まあまあ、インラインで実行できます。

if (!$pdo->query("SELECT COUNT(*) FROM mytable")->fetchColumn()) { 
    echo "Ooops, didn't find anything"; 
} 
+1

ありがとうございます。警官は私の後ろにいるので、おそらく削除されるでしょう。ポイントを持っています。 – user116032