2016-06-10 3 views
1

Это дает мне головную боль. Это было 4 часа, и я просто крутился вокруг него :(Моя проблема в том, что когда я получаю большой результат от mysql до php, он ничего не отображает. Общий результат - около 20000+. Так что я сделал это ограничение результат 1000, и это было показать результат, как и ожидалось.Результат не отображается, если большой результат

есть некоторые конфигурации, что мне нужно, чтобы установить или изменить?

Мой пример запроса ниже

не работает (когда результат более 10000)

select * from `tbl_item` where `pricelist_id` = 1 and `published` = 'unpublished' and `type` = 'item' and `parent_id` = 0 and `tbl_item`.`status` <> 'inactive' order by `order` asc limit 10000 

Работа (только ограничение результат до 1000)

select * from `tbl_item` where `pricelist_id` = 1 and `published` = 'unpublished' and `type` = 'item' and `parent_id` = 0 and `tbl_item`.`status` <> 'inactive' order by `order` asc limit 1000 

Weird. Помогите кому угодно.

С уважением,

+0

Попробуйте 'ini_set ('memory_limit', '254M'); // ваш предел памяти как строка \t ini_set ('max_execution_time', 0); ' –

+0

20000 - очень небольшое количество данных для обработки MySql, должно быть что-то не так с конфигурацией PHP или вашим кодом. Покажите нам свой код PHP, и что задано 'memory_limit' и' max_execution_time'? –

ответ

0

Может ResultSet занимает слишком много памяти. Это приведет к фатальной ошибке, вы активировали error_reporting?

ini_set('display_errors', 1); 
error_reporting(-1); 

Вы можете установить более высокий предел памяти, добавив в ваш скрипт:

ini_set('memory_limit', '2048M'); // would be really high, but good enough to investigate on the problem 

Вы можете использовать memory_get_peak_usage() для отображения ... хорошо, пик потребления памяти

0

Вы необходимо изменить приведенные ниже значения в php.ini

  1. max_execution_time
  2. memory_limit

Для примера. :

in php.ini 
max_execution_time = 3000 // seconds 
memory_limit = 512M 

Вы можете изменить это значение во время выполнения, используя функцию ini_set(), как показано ниже.

ini_set("max_execution_time", "3000"); // seconds 
ini_set("memory_limit","512M"); 

Вы можете изменить количество секунд в соответствии с вашими требованиями.