PDO には、前の SQL ステートメントの影響を受けた行数を返す関数 PDOStatement::rowCount があります。
rowCount 関数の結果は、DELETE、INSERT、または UPDATE ステートメントでは正しいですが、select ステートメントの場合はデータベースの実装に関連します。一部のデータベースは、select ステートメントの実行時にすべての結果セットをメモリに読み取りますが、膨大な数の結果セットの場合、これは明らかに非効率です。ほとんどのデータベースは結果セットの一部のみを返し、必要に応じて結果セットの残りを返すため、メモリ使用量と実行効率の両方が最適化されます。後者の場合、rowCount は SELECT ステートメントの結果セット内の正しい行数を返すことができません。
SELECT 結果の正しい行数を取得するには、いくつかの方法があります
1。 fetchAll 関数を使用します。
$q = $db->query("SELECT ...");
$rows = $q->fetchAll();
$rowCount = count($rows);
2. SQLカウント関数を使用します。
$q = $db->query("SELECT count(*) from db;");
$rows = $q->fetch();
$rowCount = $rows[0];
明らかに 2 番目の方法の方が効率的です
上記では、PHP PDO select ステートメントの結果の行数の計算を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。