Ho il più strano problema di PHP PDO, e spero che voi ragazzi possiate risolverlo per me.La query PDO di PHP non viene eseguita quando LIMIT è troppo alto?
Se ho impostato $checkLimit
-50.000, la query funziona bene. Tuttavia, se ho impostato a qualsiasi cosa sopra 50k, non restituisce alcun risultato - e non gettato eventuali messaggi di errore o (li ho già acceso utilizzando $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
}
Se corro. la query al di fuori di PHP, funziona con qualsiasi limite (anche 500k, dura circa 3 minuti).
ho provato a cambiare $results = $stmt->fetchAll()
a while ($result = $stmt->fetch()) {}
al fine di cercare di salvare la memoria, ma che non ha fatto nulla, purtroppo .
qualcuno può dirmi quello che sto facendo male qui? che cosa mi manca? Perché non posso andare oltre 50k?
Prendere in considerazione i valori di 'int' non sono infiniti, potresti aver ottenuto un numero oltre il limite. – fedorqui
Non è quello che? Non lasciarci in sospeso! –
@fedorqui: 50.000 si adatterebbe molto comodamente in un 32bit PHP int –