PHPでPDOを使用して結果セットが空であるかどうかを確認するにはどうすればよいですか?PHPのPDOを使用してdbクエリの返された結果を確認する方法
$SQL = "SELECT ......... ORDER BY lightboxName ASC;";
$STH = $DBH->prepare($SQL);
$STH->bindParam(':member_id', $member_id);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
$lightbox_name = $row['lightboxName'];
$lightbox_id = $row['lightboxID'];
echo '<option value="'.$lightbox_id.'">'.$lightbox_name.'</option>';
}
私はこのようにそれを行うために使用される:
$result = mysql_query("SELECT ...... ORDER BY lightboxName ASC;");
if(!$result) { echo 'No results found!'; }
しかし、単にPDOとプリペアドステートメントを使用して開始していると
$STH
に対してチェックすることが期待どおりに動作していないようです - それは、常に値を持っています!
パーフェクト。意図どおりに動作します。私はちょうどこれについて読んでいたし、それを行う別の方法はcolumnCount()を使うことです。 rowCount()とcolumnCount()の間にパフォーマンスの違いがあると思いますか? – ShadowStorm
@ShadowStorm 'columnCount()'は超高速でなければなりませんが、 'rowCount()'も使用可能であれば再度それを使用します。あなたは確かにそれをテストしなければならないでしょう。 – jeroen
私は 'columnCount()'がすべてのテストケースの下で '0'を返すので、最も効果的だと分かりました。 'rowCount()'はしばしば変更された行を返し、私のロジックを投げ捨てます。 – Ben