引子 .今天排查代码,一路飞,到数据库,
1 $this->slave()->select('sina_user_id, sina_nickname, password')->from(self::Table_User_Info)
显然到这里确定了表.user_info;
这个文件没有load->database();
顾名: slave() 是从库,追溯slave() 果然在这里组合了库名字符串,
1 public function slave($dbName = 'default') 2 { 3 }
func 里面load->database();
查loader里的database();有下面这句,
1 require_once(BASEPATH.'database/DB.php');
找到DB.php;
1 if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = BASEPATH.'config/'.ENVIRONMENT.'/database.php'))
这个文件里面多个数据库属性的引入,详见核心文件分析.
终于找到了database.php 位置
1 // Default DB Config 2 $db['default_master']['hostname'] = 'localhost'; 3 $db['default_master']['username'] = 'admin'; 4 $db['default_master']['password'] = '12345678'; 5 $db['default_master']['database'] = ' '; 6 $db['default_master']['port'] = 3306; 7 $db['default_master']['dbdriver'] = 'mysql'; 8 $db['default_master']['pconnect'] = FALSE; 9 $db['default_master']['db_debug'] = TRUE; 10 $db['default_master']['cache_on'] = FALSE; 11 $db['default_master']['cachedir'] = ''; 12 $db['default_master']['char_set'] = 'utf8'; 13 $db['default_master']['dbcollat'] = 'utf8_general_ci'; 14 $db['default_master']['swap_pre'] = ''; 15 $db['default_master']['autoinit'] = TRUE; 16 $db['default_master']['stricton'] = FALSE;
追溯数据库完毕.
注意点: APPPATH 和 BASEPATH ,位置不一定,同名文件也比较多,一定不要追溯到错误的文件.