PDO を使用した行数: 最適化されたソリューション
PHP で PDO を使用して行数を取得する場合は、最適なアプローチを考慮することが重要ですあなたの要件に応じて。単純さのために fetchAll() を使用したくなるかもしれませんが、大規模なデータセットの場合は非効率になる可能性があります。
行数のみ
行数が必要な場合データ自体ではなく、次のようなクエリの使用を検討してください:
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
このアプローチでは、データベースの不要なデータを取得せずに正確な行数を提供する組み込みのカウント機能。
データを含む行数の場合
行数とデータの両方が必要な場合は、PDO PDOStatement::rowCount() を提供します。ただし、この方法はすべてのドライバーで機能するとは限りません。 PDO ドキュメントによると:
「ほとんどのデータベースでは、PDOStatement::rowCount() は SELECT ステートメントの影響を受ける行数を返しません。代わりに、PDO::query() を使用して SELECT COUNT を発行します。 (*) 意図した SELECT ステートメントと同じ述語を持つステートメントを作成し、PDOStatement::fetchColumn() を使用して、 "
そのような場合は、fetchAll() を使用してデータを取得し、count() を使用して行数を決定できます。
例: query() の使用行数の場合
変数のないクエリの場合は、prepared の代わりに query() を使用できます。ステートメント:
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
これらの最適化された手法を理解することで、さまざまなシナリオで PDO を使用して行数を効果的に取得できます。
以上がPHP の PDO を使用して行数の取得を最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。