0

我需要为许多数据库连接 database.php 中的主要连接,这没有问题

但另一个连接必须在模型中

我用这个类

<?php
class user_model extends CI_Model {

        public function test()
        {
        $specific['hostname'] = "localhost";
        $specific['username'] = "root";
        $specific['password'] = "";
        $specific['database'] = "ci_forsyria";
        $specific['dbdriver'] = "mysql";
        $specific['dbprefix'] = "";
        $specific['pconnect'] = FALSE;
        $specific['db_debug'] = TRUE;
        $specific['cache_on'] = FALSE;
        $specific['cachedir'] = "";
        $specific['char_set'] = "utf8";
        $specific['dbcollat'] = "utf8_general_ci";

        $this->load->database($specific);

        //get data using datamapper
        $o = new db_user();
        $array = array();
        $o->where($array)->get();
        echo $num_rows = $o->result_count();
        }
}
?>

但连接不工作它仍然与主数据库连接

错误号:1146 表“countries.ci_users”不存在

注意:我不会使用 database.php 文件中的另一个连接,因为我有超过 100 个连接

4

2 回答 2

1

我相信 CI 会认为您已经有一个可用的连接并且它不使用您指定的参数。

$this->db->close();在连接新配置之前尝试通过键入关闭默认连接。

否则,您应该通过将第二个参数设置为 TRUE ,返回具有手册中指定的新配置的数据库对象的新实例。您应该能够使用返回的对象:

$specific_db =  $this->load->database($specific, TRUE);
于 2012-04-15T18:03:44.460 回答
1

对于您对 Repox 的评论,您肯定是用错了。他的最后一个解决方案必须有效,我自己不断使用它。你能展示一个对象的“new db_user()”是什么,你可以使用通用数据库吗?

注意:在这里留下结束标签,它是一个模型:

对于仅包含 PHP 代码的文件,从不允许使用结束标记 ("?>")。PHP 不需要它,并且省略它可以防止意外地将尾随空格注入响应中。

举个例子,它应该从国家表中返回 30 个值。

<?php
class user_model extends CI_Model {
    public function test()
    {
    $specific['hostname'] = "localhost";
    $specific['username'] = "root";
    $specific['password'] = "";
    $specific['database'] = "ci_forsyria";
    $specific['dbdriver'] = "mysql";
    $specific['dbprefix'] = "";
    $specific['pconnect'] = FALSE;
    $specific['db_debug'] = TRUE;
    $specific['cache_on'] = FALSE;
    $specific['cachedir'] = "";
    $specific['char_set'] = "utf8";
    $specific['dbcollat'] = "utf8_general_ci";

    $specific_db = $this->load->database($specific, TRUE);

    $example_query = $specific_db->query('SELECT * FROM countries LIMIT 0,30')->result();

    return var_dump($example_query);
    }
}
于 2012-04-15T18:32:20.770 回答