PHP PDO: SELECT クエリによって返される行数の取得
ただし、PDO には、クエリによって返される行をカウントする専用のメソッドがありません。 SELECT クエリと同様に、この機能を実現するには、いくつかの代替アプローチが利用可能です。
rowCount() の使用
PDOStatement クラスには、行数を返す rowCount() メソッドが用意されています。 UPDATE、INSERT、または DELETE ステートメントの影響を受けます。ただし、マニュアルでは、行数が正確に反映されない可能性があるため、SELECT ステートメントで rowCount() を使用しないことを推奨しています。
COUNT(*) サブクエリの使用
によるとPDO ドキュメントによると、推奨されるアプローチは、COUNT(*) を指定した PDO::query() サブクエリを使用して行をカウントすることです。行数は PDOStatement::fetchColumn() を使用して取得できます。例:
$stmt = $conn->prepare('SELECT COUNT(*) FROM table'); $stmt->execute(); $rowCount = $stmt->fetchColumn();
フェッチ メソッドの使用
既にデータを結果セットにフェッチしている場合は、fetch* メソッドの 1 つを使用して取得できます。データを取得し、count() 関数を使用して行数を決定します。たとえば、fetchAll() メソッドを使用する場合:
$stmt = $conn->query('SELECT * FROM table'); $rows = $stmt->fetchAll(); $rowCount = count($rows);
追加の考慮事項
LIMIT 句を含む SELECT クエリを使用する場合、rowCount() メソッドは次の値を返す場合があります。 LIMIT が適用される前の行数。したがって、精度を確保するために、一般的には上記のサブクエリ アプローチを使用することをお勧めします。
以上がPHP PDO SELECT クエリによって返される行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。