5

私は最も奇妙な PHP PDO の問題を抱えています。皆さんが解決してくれることを願っています。

$checkLimit50000に設定すると、クエリは正常に機能します。ただし、50k を超える値に設定すると、結果は返されず、エラー メッセージもキャストされません ( $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING).

$sql = "
   SELECT d_domain_name AS domainName, d_domain_id AS domainID
   FROM domains
   ORDER BY d_domain_name_length ASC, d_domain_name ASC
   LIMIT :checkLimit
";
$stmt = $db->prepare($sql);
$stmt->bindValue(':checkLimit', intval($checkLimit), PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll();
foreach ($results as $result) {
 // 50k moments of magic
}

PHP の外部でクエリを実行すると、任意の制限 (500k であっても、約 3 分かかります) で動作します。

メモリを節約するために に変更しよ$results = $stmt->fetchAll()while ($result = $stmt->fetch()) {}としましたが、残念ながら何もしませんでした。

ここで私が間違っていることを誰かに教えてもらえますか? 私は何が欠けていますか?なぜ50kを超えられないのですか?

4

1 に答える 1