2017-02-10 26 views
1

Я пытаюсь захватить некоторые данные базы данных через ajax в моем проекте symfony. Я взял все оценки в нашей базе данных, и их более 60 тыс. Когда я пытаюсь и json_encode результаты, я получаю ошибку из памяти. Я знаю, что это связано с размером, потому что я могу json_encode получить один результат, и он возвращает штраф.Обработка данных, которые слишком велики для json_encode (PHP)

$results = new \stdClass; 
$results->jobs = $epms->getEstimates(); 

// JSON encode results to send to the view. The view just echos them out for jQuery to process. 
$json_encoded = json_encode($results->jobs[1]); //Works 
$json_encoded = json_encode($results->jobs); //Doesn't work 
$headers = array(
    'Content-Type' => 'application/json' 
); 
$response = new Response($json_encoded, 200, $headers); 
return $response; 

Я PHP нуб, но моя идея была разделить результаты и кодировать мелкие куски, которые я мог бы присоединиться вместе, прежде чем вернуться к моему AJAX вызову. Каков наилучший подход к этому? Я не хочу увеличивать лимит памяти php.

+1

динамически увеличивать память с помощью 'ini_set ('memory_limit', '16M');' –

+1

Он работает, если я установил его в ini_set ('memory_limit', '512M'); Должен ли я динамически менять его обратно на что-то меньшее после его запуска? –

+1

Нет, он будет работать только для текущего выполнения страницы. Так что не нужно беспокоиться –

ответ

1

Вам нужно увеличить лимит памяти динамически: -

ini_set('memory_limit','16M');// change 16M to your desired number 

Примечание: -

Приведенный выше код будет увеличивать максимальный объем памяти, доступной для PHP 16 МБ и этот параметр настраивается только для запущенный скрипт.

 Смежные вопросы

  • Нет связанных вопросов^_^