PHPのPDOで質問です。


全投稿数(2万前後)を取得しようとして
下記を実行した場合メモリーオーバーになってしまいます。

$conn->prepare($sql);
$stmt->execute();
$stmt->rowCount();

メモリーオーバーにならない方法はありませんでしょうか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2014/11/05 13:20:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kazukichi_0914 No.1

回答回数126ベストアンサー獲得回数8

ポイント67pt

仮想メモリのメモリにのっからないならmysqlとかhddに投げるまでです。

id:gizmo5 No.2

回答回数504ベストアンサー獲得回数141

ポイント67pt

SQL が明示されていませんが COUNT 関数を使えば良いと思います。

	$sql = "SELECT COUNT(*) FROM xxx";
	$res = $conn->query($sql);
	$count = $res->fetchColumn();

参考:
http://php.net/manual/ja/pdostatement.rowcount.php#example-1009

id:kujirahand No.3

回答回数27ベストアンサー獲得回数2

ポイント66pt

大量のデータを一度に取得しようとするので、エラーになってしまいます。
そこで、SQLに、LIMIT と OFFSET 入れて、少しずつデータを取得して、処理が完了したら、続きを読むようにしましょう。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません