тестировали новый сервер с php 5.4.11 - скрипт начал падать с "PHP Fatal error: Allowed memory size" на $PDOStatement->execute();
вспомнил про константу, проверил - интересно!
оказывается, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY по дефолту 1, и вместе с mysqlnd это приводит к Fatal Error на больших выборках,
а раньше не приводило - старый драйвер mysql результат в памяти базы держал, видимо, или его данные в памяти не учитывались скриптом
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
вспомнил про константу, проверил - интересно!
оказывается, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY по дефолту 1, и вместе с mysqlnd это приводит к Fatal Error на больших выборках,
а раньше не приводило - старый драйвер mysql результат в памяти базы держал, видимо, или его данные в памяти не учитывались скриптом
не забывайте при работе с PDO перед большой выборкой выставлять[grigori@newrpc newrpc.dev-02.sotmarket.ru]$ php testsql.phpPHP:<?php $db = new PDO('mysql:host=10.0.0.18;dbname=newrpc'); $flag = $db->getAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY); var_dump($flag);
int(1)
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);