[解決済み】PDOでの行数カウント
2022-04-08 18:25:33
質問
巷には矛盾する記述がたくさんあります。PHPでPDOを使用して行数を取得する最良の方法は何ですか?PDOを使う前は、単純に
mysql_num_rows
.
fetchAll
は、大きなデータセットを扱うことがあるため、私の用途には合いません。
何かご提案がありますか?
解決方法は?
$sql = "SELECT count(*) FROM `table` WHERE foo = ?";
$result = $con->prepare($sql);
$result->execute([$bar]);
$number_of_rows = $result->fetchColumn();
最もエレガントな方法とは言えませんし、余分なクエリを含んでいます。
PDOは
PDOStatement::rowCount()
で、これはどうやら
ない
は MySql で動作します。なんて面倒なんだ。
PDO Doc.から。
ほとんどのデータベースで PDOStatement::rowCount()では が影響を与える行の数を返します。 SELECT ステートメントを使用します。代わりに PDO::query()でSELECT COUNT(*)ステートメントと同じ内容の の述語は、意図したSELECT ステートメントを使用し、次に PDOStatement::fetchColumn()で 行数を取得します。 が返されます。そうすれば、あなたのアプリケーションは が正しい動作をします。
EDIT: 上記のコード例では、プリペアド・ステートメントを使用していますが、これは行数をカウントする目的では不要な場合が多いと思われますので、そのようにします。
$nRows = $pdo->query('select count(*) from blah')->fetchColumn();
echo $nRows;
関連
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み] 入力ファイルが指定されていない
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み] pipで特定のバージョンのパッケージをインストールする
-
[解決済み] PDOのプリペアドステートメントは、SQLインジェクションを防ぐのに十分ですか?
-
[解決済み] PDOで持続的接続を使用することのデメリットは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】空の配列要素を削除する
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。