简体   繁体   English

在Codeigniter中使用第二个数据库

[英]Using the second database in Codeigniter

I'm trying to query from my second database in Codeigniter, so In my database configuration I have the following: 我正在尝试从Codeigniter中的第二个数据库进行查询,因此在我的数据库配置中,我具有以下内容:

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

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'gallery';
$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;
$db['default']['stricton'] = FALSE;

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

and in my model method I have the following code: 在我的模型方法中,我有以下代码:

    public function getAll() 
    {
             $tc = $this->load->database('tc', TRUE);    
             $sql = "SELECT username, MIN(timeIn) 
                     FROM timecard2.tc_timecard
                     GROUP BY userid  having  MIN(timeIn) >? and 
                     MIN(timeIN)<? order by MiN(timeIN);";                                    
            $q=$tc->query($sql,'2013-01-08','2013-01-23');                                    
            if ($q->num_rows() > 0)
            {
                foreach ($q->result() as $row) {
                    $data[] = $row;
                 }
                 return $data;
            }
     }

but it does not work! 但它不起作用! is it the right way to query the second database? 查询第二个数据库是否正确?

If you need more clarification please let me know which part you need more clarifiocation. 如果您需要更多说明,请告诉我哪一部分需要更多说明。

EDITED: Just figured out it works fine with one ? 编辑:只是发现它可以正常工作吗? (parameter)! (参数)! It works for the following code: 它适用于以下代码:

    $sql = "SELECT username, MIN(timeIn) 
            FROM tc_timecard
            GROUP BY userid  having  
            MIN(timeIn) > ? and MIN(timeIN) < '2013-01-23' 
            order by MiN(timeIN);";                        

    $q=$tc->query($sql,'2013-01-08');

Do you have any clue why it does not get the second parameter? 您有任何线索为什么它没有获得第二个参数?

Thanks 谢谢

每个codeigniter的文档: https : //www.codeigniter.com/user_guide/database/connecting.html

$tc = $this->load->database($db['tc'], TRUE);    

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM