Проблема загрузки модели с CodeIgniter - PullRequest
0 голосов
/ 05 декабря 2011

Если я загружу 5 моделей в контроллер, будет ли установлено соединение с базой данных для всех моделей отдельно?

Поскольку это создает проблему зависания сервера из-за открытия нескольких портов для подключения к базе данных для каждой модели.

Если есть какое-нибудь решение?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 05 декабря 2011

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

Возможно, проблема в запросах вашей базы данных - они могут замедлять ответы. Вы используете постоянное соединение в конфигурации базы данных?

Есть много вопросов, но не так много кода от вас, поэтому мы можем только догадываться.

0 голосов
/ 05 декабря 2011

Вы на 100% уверены, что проблема в этом?У меня никогда не было загрузки такого количества моделей, в том числе потому, что CI работает как своего рода одноэлементный объект, поэтому объект всегда один, а также классы не перезагружаются / не создаются, если один экземпляр уже существует.

Если у вас есть проблемы с вашей базой данных, попробуйте установить для pconnect (постоянное соединение) значение FALSE в config/database.php.Вы также можете включить кэширование, это может помочь.

$db['test']['pconnect'] = FALSE;
$db['test']['db_debug'] = TRUE;
$db['test']['cache_on'] = TRUE;
0 голосов
/ 05 декабря 2011

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

...