この記事では、主に PDO の rowCount 関数 の関連する使用法と効率の問題を紹介します。必要な友人はそれを参照してください
PDO には関数 PDOStatement::rowCount があり、前の SQL に戻ります。ステートメントによって影響を受ける行の数。
rowCount 関数の結果は、DELETE、INSERT、または UPDATE ステートメントでは正しいですが、select ステートメントの場合はデータベースの実装に関連します。一部のデータベースは、select ステートメントの実行時にすべての結果セットをメモリに読み取りますが、膨大な数の結果セットの場合、これは明らかに非効率です。ほとんどのデータベースは結果セットの一部のみを返し、必要に応じて結果セットの残りを返すため、メモリ使用量と実行効率の両方が最適化されます。後者の場合、rowCount は SELECT ステートメントの結果セット内の正しい行数を返すことができません。 SELECT 結果の正しい行数を取得するには、いくつかの方法があります
1. fetchAll 関数 $q = $db->query("SELECT ..."); を使用します。 (); $ rowCount = count($rows);
2. SQL カウント関数を使用します $q = $db->query("SELECT count(*) from db;"); (); $ rowCount = $rows[0];
明らかに 2 番目のメソッドの方が効率的です
Instance
PDOStatement::rowCount() は DELETE、INSERT、または UPDATE ステートメントの番号。<?php /* 从 FRUIT 数据表中删除所有行 */ $del = $dbh->prepare('DELETE FROM fruit'); $del->execute(); /* 返回被删除的行数 */ print("Return number of rows that were deleted:\n"); $count = $del->rowCount(); print("Deleted $count rows.\n"); ?>上記の出力例:
Return number of rows that were deleted: Deleted 9 rows.
以上がPDO rowCount()関数の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。