ホームページ >データベース >mysql チュートリアル >PHP で PDO を使用して行を数える最も効率的な方法は何ですか?

PHP で PDO を使用して行を数える最も効率的な方法は何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 08:59:14134ブラウズ

What's the Most Efficient Way to Count Rows Using PDO in PHP?

PDO を使用した行数のカウント

バックグラウンド

PHP で PDO を使用して行数を取得する最適な方法の決定は、依然として議論の対象です。この記事では、代替アプローチを検討し、効率的なソリューションを求めるプログラマにガイダンスを提供します。

データベース中心のアプローチ

実際のデータにアクセスする必要がないシナリオの場合は、データベース中心のアプローチをお勧めします。このメソッドを使用すると、データベースは行カウントを実行し、数値のみを返します。次のコードは、このアプローチの例を示しています。

$sql = "SELECT count(*) FROM `table` WHERE foo = ?";
$result = $con->prepare($sql);
$result->execute([$bar]);
$number_of_rows = $result->fetchColumn();

また、データ自体も取得される場合は、PDStatement::rowCount() を使用して行数を取得できます。この方法は、MySQL のバッファされたクエリ (デフォルトで有効) で効果的に機能します。

PDO 中心のアプローチ

ただし、PDStatement::rowCount() のみに依存することは、他のデータベースでは保証されません。 PDO ドキュメントによると:

「ほとんどのデータベースでは、PDOStatement::rowCount() は SELECT ステートメントの影響を受ける行数を返しません。」

この制限を克服するには、ドキュメントPDO::query() を使用して SELECT COUNT(*) ステートメントを発行し、次に PDStatement::fetchColumn() を使用して目的のデータを取得することを提案します。 value.

最後に、変数プレースホルダーのない単純なクエリの場合、PDO::query() を直接使用できます:

$nRows = $pdo->query('select count(*) from blah')->fetchColumn();
echo $nRows;

以上がPHP で PDO を使用して行を数える最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。