2015-05-24 2 views
2

У меня есть некоторые проблемы на моем сайте, у меня слишком много сообщений об ошибках.Ошибка: mysqli :: real_connect(): (08004/1040): Слишком много соединений [CodeIgniter v3]

Скриншот: http://pasteboard.co/Hz7QJQR.png

трассировку сказали, что моя ошибка в моих __construct, модели функция list_slider и моя модель на get function:

это мой код контроллера:

<?php 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Beranda extends CI_Controller { 

    public function __construct() 
    { 
      parent::__construct(); 
      $this->load->helper(array('form', 'url', 'html')); 
      $this->load->model(array('slider_model', 'slider_2_model', 'group_model', 'contact_model')); 
    } 

    public function index() 
    { 
      $data['slider_data'] = $this->slider_model->list_slider(); 
      $data['slider_2_data'] = $this->slider_2_model->list_slider(); 
      $data['group_data'] = $this->group_model->list_group(); 
      $data['contact_data'] = $this->contact_model->list_contact(); 
      $data['title'] = 'Kitchenware Equipments & Utensiles - norwinskitchenware.com'; 
      $this->load->view('fend/view_beranda', $data); 
    } 

} 

?> 

и это мое модель [ОБНОВЛЕНИЕ]:

<?php 
    class Slider_model extends CI_Model { 

     function list_slider() 
     { 

       $this->db->select('*'); 
       $this->db->from('slider'); 
       $query = $this->db->get(); 
       $this->db->close(); 
       return $query->result(); 
     } 
    } 
?> 

Я уже установлен 'pconnect' => FALSE и mysql.allow_persistent = OFF

Что я должен делать?

Благодаря

ответ

1

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

И если вы делаете это в вашем контроллере

public function __destruct() { 
    $this->db->close(); 
} 

Вы должны закрыть его __destruct()

+0

уже чувак см мой пост подробнее хехе – TableMan

+0

да уже сказал администратору, и он уже сделал это – TableMan

+0

Я обновил свой ответ :) Извините, что не замечал ваш вопрос полностью –

-1

Нам не нужно использовать $this->db->close() как Sulthan Allaudeen говорить. Поскольку CI & некоторые функции connect db в настоящее время имеют поддержку конфигурации для автоматического закрытия при завершении манипуляции.

В CodeIgniter 3.1.2 я обнаружил в application/config/database.php собственности $db['default']['pconnect'] это значит, процесс удержания после подключения или мы можем объяснить, как значение по умолчанию CI «Независимо от того, чтобы использовать постоянное соединение».

Это значение должно иметь значение FALSE.

Потому что если это значение TRUE. Ваш код доступа некоторое время и иметь доступ к досягаемости базы данных, чтобы ограничить подключение базы данных (max_connections в /etc/my.cnf) мы не можем подключиться снова и выведет сообщение об ошибке: mysqli::real_connect(): (08004/1040): Too many connections

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