doudun2212 2015-09-08 18:32
浏览 75
已采纳

在codeigniter中自动加载数据库

I am using this class:

<?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"];
    }
}
?>

And I am using auto load feature for database. My config file:

$autoload['libraries'] = array('database','session');

But you can see I am not using database in decrypt1 method. Will codeigniter connect to database even i don't use the database operation?

  • 写回答

1条回答 默认 最新

  • dongwu8653 2015-09-08 18:54
    关注

    This is a portion of CI DB_Driver class:

    /**
     * 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);
    }
    

    As you can see, database driver isn't loaded (and thus connected to db server) until the first query (DB_Driver::query() behaves almost same).

    Another point, if somewhere earlier in the code you performed some db queries (like, checking user session/activity), then connection to db server is already established, even if you don't perform any queries to db in your's decrypt1() method.

    Upd. Make sure to use lazy-loading in database config (autoinit option should be false).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题