0

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++;
    }
4

2 に答える 2