我有一些代码遍历从 DB 接收到的数据,但问题是内存已耗尽。我的内存限制设置为 128 MB。我的测试返回的总行数约为 200k。所以我不知道是不是数据太多,或者是否有办法缓冲表而不是一次将整个数据存储在内存中。
在 while 语句开始的行处抛出内存耗尽错误。
$queryResult = $dbCon->prepare( $sqlQuery );
$queryResult -> bindParam(':field1', $field1);
$queryResult -> bindParam(':field2', $field2);
$queryResult -> bindParam(':field3', $field3);
$queryResult -> execute();
$allData = array();
$i=0;
while ( $row = $queryResult->fetch(PDO::FETCH_ASSOC) )
{
foreach ( $row as $sKey=>$vVal )
{
if( $i == 0 )
{
$this->allHeaders[] = $sKey ;
}
$allData[ $i ][ $sKey ] = $vVal;
}
$i++;
}