我的网站存在一些问题,我收到错误的链接太多了。
屏幕截图:http://pasteboard.co/Hz7QJQR.png
Backtrace在我的__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
我该怎么办?
谢谢
答案 0 :(得分:2)
在你的模型中,你应该关闭你的功能的连接。
如果你在你的控制器中这样做
public function __destruct() {
$this->db->close();
}
您应按__destruct()
答案 1 :(得分:0)
我们不需要像Sulthan Allaudeen那样使用$this->db->close()
。因为CI&amp;当前有一些函数连接db在操作完成时有自动关闭的配置支持。
在codeigniter 3.1.2中,我在application/config/database.php
中找到了
属性$db['default']['pconnect']
是连接后的平均保持过程,或者我们可以解释CI的默认值&#34;是否使用持久连接&#34;。
此值的值应为FALSE
。
因为它的值是TRUE
。您的代码访问一段时间并且可以访问数据库范围以限制数据库的连接(/etc/my.cnf
中的max_connections)我们将无法再次连接并输出错误:
mysqli::real_connect(): (08004/1040): Too many connections
答案 2 :(得分:0)
首先检查您的连接限制。
SHOW VARIABLES LIKE 'max_connections';
第二次检查您当前的连接。
SHOW STATUS LIKE 'max_used_connections';
解决方案:
暂时=> SET GLOBAL max_connections = 512;
永久=> /etc/my.cnf更改此设置(最大连接数= 512)
对于CentOS / RHEL 6:service mysqld restart
对于CentOS / RHEL 7:systemctl restart mysqld