我正在使用这个课程:
<?php
class Decrypt extends CI_Controller
{
public function decrypt1($toDescrypt="")
{
$this->load->library('encrypt');
$toDescrypt = urldecode($toDescrypt);
$s=unserialize($this->encrypt->decode($toDescrypt));
echo $s["username"];
}
}
?>
我正在使用数据库的自动加载功能。我的配置文件:
$autoload['libraries'] = array('database','session');
但你可以看到我没有在decrypt1
方法中使用数据库。即使我不使用数据库操作,codeigniter会连接到数据库吗?
答案 0 :(得分:0)
这是CI DB_Driver
类的一部分:
/**
* Simple Query
* This is a simplified version of the query() function. Internally
* we only use it when running transaction commands since they do
* not require all the features of the main query() function.
*
* @access public
* @param string the sql query
* @return mixed
*/
function simple_query($sql)
{
if ( ! $this->conn_id)
{
$this->initialize();
}
return $this->_execute($sql);
}
如您所见,数据库驱动程序未加载(因此连接到数据库服务器),直到第一个查询(DB_Driver::query()
的行为几乎相同)。
另一点,如果在代码中较早的某处执行了一些数据库查询(例如,检查用户会话/活动),那么即使您没有对数据库执行任何查询,也已建立与数据库服务器的连接。你的decrypt1()
方法。
UPD。确保在数据库配置中使用延迟加载(autoinit
选项应为false
)。