Ich habe das seltsamste PHP-PDO-Problem, und ich hoffe, ihr könnt es für mich erledigen.Die PHP-PDO-Abfrage wird nicht ausgeführt, wenn LIMIT zu hoch ist?
Wenn ich $checkLimit
auf 50000 festlegen, funktioniert die Abfrage einwandfrei. Allerdings, wenn ich es zu etwas über 50k setzen, wird es keine Ergebnisse zurück - und es macht werfen keine Fehlermeldungen entweder (Ich habe bereits eingeschaltet haben $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING)
mit
$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
}
Wenn ich laufen. die Abfrage außerhalb von PHP, es funktioniert mit jedem Limit (auch 500k, dauert etwa 3 Minuten)
Ich habe versucht, $results = $stmt->fetchAll()
zu while ($result = $stmt->fetch()) {}
zu ändern, um zu versuchen, Speicher zu sparen, aber das tat nichts, leider .
Kann mir jemand sagen, was ich hier falsch mache? Was vermisse ich? Warum kann ich nicht über 50k gehen?
Berücksichtigen Sie, dass 'int' Werte nicht unendlich sind, Sie haben möglicherweise eine Grenzwertnummer überschritten. – fedorqui
Es ist nicht was? Lass uns nicht in der Schwebe! –
@Fedorqui: 50.000 würde SEHR bequem in eine 32bit PHP int passen –