由于内存限制,我无法同时获取所有300k行。 有什么方法可以使用while / fetch PDO在预定义的块中循环? 类似的东西:
;extension=php_curl.dll
其中N是预定义的间隔。
答案 0 :(得分:3)
你不需要那个。您的记忆问题是由unbuffered query
引起的因此,只需在查询之前添加此魔术行
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE);
并且对内存没有任何问题 - 您的代码
while($result = $statement->fetch(PDO::FETCH_ASSOC))
将不会超过单行的RAM