我有一个最奇怪的 PHP PDO 问题,希望你们能帮我解决。
如果我设置$checkLimit
为 50000,则查询工作正常。但是,如果我将其设置为 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?