最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

CodeIgniter底层数据库类继承关系

来源:动视网 责编:小采 时间:2020-11-09 16:03:25
文档

CodeIgniter底层数据库类继承关系

CodeIgniter底层数据库类继承关系:1、CI_DB_mysql_driver 继承CI_DB, CI_DB这个类是不存在的,每次调用文件中~/CodeIgniter_2.1.3/system/database/DB.php函数DB来初始化database的时候, 根据用户是否开启active_record,生成继承CI_DB_active_record或CI
推荐度:
导读CodeIgniter底层数据库类继承关系:1、CI_DB_mysql_driver 继承CI_DB, CI_DB这个类是不存在的,每次调用文件中~/CodeIgniter_2.1.3/system/database/DB.php函数DB来初始化database的时候, 根据用户是否开启active_record,生成继承CI_DB_active_record或CI


1、CI_DB_mysql_driver 继承CI_DB, CI_DB这个类是不存在的,每次调用文件中~/CodeIgniter_2.1.3/system/database/DB.php函数DB来初始化database的时候, 根据用户是否开启active_record,生成继承CI_DB_active_record或CI_DB_driver类的CI_DB类, 2、CI_DB_a

1、CI_DB_mysql_driver 继承 CI_DB, CI_DB这个类是不存在的,每次调用文件中~/CodeIgniter_2.1.3/system/database/DB.php函数&DB来初始化database的时候,

根据用户是否开启active_record,生成继承CI_DB_active_record或CI_DB_driver类的CI_DB类,

2、CI_DB_active_record类继承CI_DB_driver类

 require_once(BASEPATH.'database/DB_driver.php');

 if ( ! isset($active_record) OR $active_record == TRUE)
 {
 require_once(BASEPATH.'database/DB_active_rec.php');

 if ( ! class_exists('CI_DB'))
 {
 eval('class CI_DB extends CI_DB_active_record { }');
 }
 }
 else
 {
 if ( ! class_exists('CI_DB'))
 {
 eval('class CI_DB extends CI_DB_driver { }');
 }
 }

3、最终会调用顶级父类CI_DB_driver的构造方法,将数据库配置的各字段赋值到CI_DB_driver类的各个字段上,

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = ''; 
$db['default']['password'] = ''; 
$db['default']['database'] = ''; 
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = ''; 
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = ''; 
$db['default']['autoinit'] = TRUE;


 var $username;
 var $password;
 var $hostname;
 var $database;
 var $dbdriver = 'mysql';
 var $dbprefix = '';
 var $char_set = 'utf8';
 var $dbcollat = 'utf8_general_ci';
 var $autoinit = TRUE;
 var $port = '';
 var $pconnect = FALSE;
 var $db_debug = FALSE; 

如果autoinit自动初始化为TRUE,则将DB初始化,这个DB对象是CI_DB_mysql_driver类

 require_once(BASEPATH.'database/DB_driver.php');

 if ( ! isset($active_record) OR $active_record == TRUE)
 {
 require_once(BASEPATH.'database/DB_active_rec.php');

 if ( ! class_exists('CI_DB'))
 {
 eval('class CI_DB extends CI_DB_active_record { }');
 }
 }
 else
 {
 if ( ! class_exists('CI_DB'))
 {
 eval('class CI_DB extends CI_DB_driver { }');
 }
 }

 require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php');

 // Instantiate the DB adapter
 $driver = 'CI_DB_'.$params['dbdriver'].'_driver';
 $DB = new $driver($params);
 if ($DB->autoinit == TRUE)
 {
 $DB->initialize();
 }

 return $DB;

文档

CodeIgniter底层数据库类继承关系

CodeIgniter底层数据库类继承关系:1、CI_DB_mysql_driver 继承CI_DB, CI_DB这个类是不存在的,每次调用文件中~/CodeIgniter_2.1.3/system/database/DB.php函数DB来初始化database的时候, 根据用户是否开启active_record,生成继承CI_DB_active_record或CI
推荐度:
标签: 数据 数据库 关系
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top