PHP PDO で行をカウントする方法
PHP でデータベースにアクセスするための業界標準ライブラリである PDO には、カウントするための専用のメソッドがありません。 SELECT クエリによって返される行。一般的な回避策は count($results->fetchAll()) を利用することですが、これが常に最も効率的なアプローチであるとは限りません。
PDOStatement::rowCount
PDO ステートメント オブジェクトは rowCount メソッドを公開します。ただし、公式 PDO ドキュメントによると、
For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.
既存のレコードセットでの行数のカウント
データを既にフェッチしている場合は、count 関数を使用できます。結果の配列:
$stmt = $db->prepare('SELECT * FROM table'); $stmt->execute(); $rowCount = count($stmt->fetchAll(PDO::FETCH_ASSOC));
または、オブジェクト指向に依存することもできます。手動で行を走査してカウントします:
$rowCount = 0; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $rowCount++; }
すべての行をメモリにフェッチすると、特に大きな結果セットの場合、アプリケーションのパフォーマンスに影響を与える可能性があることに注意してください。必要に応じて、ページネーションやその他の最適化手法を検討してください。
以上がPHP で PDO SELECT ステートメントから行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。