Nó không liên quan trực tiếp đến PHP7. Vấn đề là do mysqlnd mới trình điều khiển, vì vậy bạn có thể gặp vấn đề tương tự ngay cả với PHP 5.x. Nó thực sự là một bản sửa lỗi, vì ngay cả trước khi bộ nhớ vẫn được cấp phát, nhưng nó không được tính vào memory_limit .
Để tránh sự cố bộ nhớ, bạn phải sử dụng truy vấn không có bộ đệm cho các tập kết quả lớn.
Vì vậy, đối với truy vấn mong đợi một tập dữ liệu lớn, hãy đặt cài đặt thích hợp như sau:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
Để đọc thêm, tôi đã có giải thích phù hợp trong hướng dẫn PDO của tôi , cảm ơn Nikic, người có phản hồi quan trọng là vô giá.