【问题标题】:Using the second database in Codeigniter在 Codeigniter 中使用第二个数据库
【发布时间】:2013-10-24 23:31:16
【问题描述】:

我正在尝试从 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;

在我的模型方法中,我有以下代码:

    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;
            }
     }

但它不起作用!查询第二个数据库的方法是否正确?

如果您需要更多说明,请告诉我您需要更多说明的部分。

已编辑: 刚刚发现它可以正常工作吗? (范围)! 它适用于以下代码:

    $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');

你知道为什么它没有得到第二个参数吗?

谢谢

【问题讨论】:

  • 我想通了;我需要为参数传递一个数组!

标签: php codeigniter codeigniter-2


【解决方案1】:

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

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

【讨论】:

  • 我发现第二个数据库在这里没什么大不了的;只是我不能传递第二个参数!请在我刚刚添加的问题的最后查看我的编辑!你有什么线索为什么它不传递第二个参数吗?
  • 第二个参数应该是一个数组,例如:$tc->query($sql,array('2013-01-08','2013-01-09'));
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 2013-01-18
  • 2019-01-07
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
相关资源
最近更新 更多