Codeigniter - пустой экран при попытке извлечь 8500 записей - PullRequest
1 голос
/ 30 июля 2010

Я пытаюсь отобразить таблицу, которая содержит 8500 записей, я использую те же функции контроллера / модели, что и на всем сайте, и все работает нормально.

Однако на этой странице я вижу только пустой экран. Это известная проблема с codeigniter? Есть ли работа вокруг? Я полностью озадачен, мой единственный вариант, который я предполагаю, состоит в том, чтобы разбить таблицу на подстолы?

Я могу показать вам свой код, если необходимо.

Спасибо

Dan

1 Ответ

5 голосов
/ 30 июля 2010

Когда вы видите пустой экран, это обычно означает, что вы что-то сделали, чтобы получить ошибку PHP.

Чтобы увидеть, что это за ошибка, проверьте журнал ошибок php. Я подозреваю, что вы превысили максимально допустимый предел памяти.

php_value memory_limit 256M
php_value display_errors 1
php_flag log_errors on
php_value error_log /some/path/on/the/box/you/have/acess/to.log

Ниже представлены жестко запрограммированные способы PHP для включения настроек, над этой строкой находятся директивы .htaccess, которые вы можете установить, которые будут активны для всего вашего приложения.

Чтобы убедиться, что отчет об ошибках включен, и вы отображаете ошибки, которые вы можете сделать ..

ini_set('display_errors', 'On');
error_reporting(E_ALL);

Чтобы узнать, где находится ваш журнал ошибок, создайте тестовый скрипт, чтобы сообщить вам.

die(ini_get('error_log'));

Убедитесь, что параметр ini log_errors также включен в вашем файле php.ini.

Если вы действительно превышаете максимально допустимый предел памяти, вы можете увеличить его, выполнив

ini_set(“memory_limit”,”256M”); // 256 megabytes

Я рекомендую обновить это в вашем файле php.ini и перезапустить apache, чтобы изменения вступили в силу.

Если ваш сценарий имеет дело с большими объемами данных, и для его запуска может потребоваться некоторое время, вы также можете превысить параметр in_ max_execution_time.

Чтобы увидеть, что в данный момент установлено, вы можете сделать

die(ini_get('max_execution_time'));

Есть хорошая функция PHP-помощника, чтобы установить это для вас set_time_limit

set_time_limit(300); // Input in seconds, this is 5 minutes.

Надеюсь, это поможет вам куда-нибудь добраться. Лучше всего смотреть на журнал ошибок.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...