Codeigniter $ this-> db-> reconnect(); 用法

Ben*_*der 4 php mysql codeigniter

我不是自动加载db,因为我的应用程序的大多数页面都不需要db处理,否则整个事情会变慢.我想要做的是当有一个已经存在并且使用它而不是打扰服务器db时,不建立与db的新连接.那么我如何实现$this->db->reconnect();下面的例子呢?我阅读了用户指南,但没有确切的例子.

注:如果我需要使用$this->db->close();和$this->db->initialize();再请大家帮我实现它们,以及因为听说呼吁$this->db->reconnect();禁用将抛出一个错误自动加载.

我正在使用CI 2.1

谢谢

class Test_model extends CI_Model
{
 public function __construct()
 {
  parent::__construct();

  $this->load->database();
 }

 public function function_a($id)
 {
  $this->db->protect_identifiers('year');

  $sql = "SELECT * FROM year WHERE id = ?";

  $data['dbquery'] = $this->db->query($sql, array($id));

  return $data['dbquery'];
 }

 public function function_b($id)
 {
  $this->db->protect_identifiers('month');

  $sql = "SELECT * FROM month WHERE id = ?";

  $data['dbquery'] = $this->db->query($sql, array($id));

  return $data['dbquery'];
 }


 public function function_c($id)...
 public function function_d($id)...
 public function function_e($id)...
} 
Run Code Online (Sandbox Code Playgroud)

The*_*pha 9

基本上,如果你保留pconnect=false,database.php那么连接将在每个脚本执行结束时自动关闭,默认设置为false.

好吧,如果你想,那么你可以使用

$this->db->close();
Run Code Online (Sandbox Code Playgroud)

每次执行查询后手动关闭连接并使用

$this->db->initialize();
Run Code Online (Sandbox Code Playgroud)

在任何查询执行之前,在关闭它之后再次初始化连接.