CodeIgniter dbutil& db指向不同的数据库(如何备份当前数据库)

时间:2012-08-18 06:00:02

标签: database codeigniter

我遇到了dbutil和db的问题。 下面是我的代码(我的模型的构造函数):

public function __construct(){
    // I save my database configuration in CI session
    $this->load->library('session');
    $config = $this->session->userdata("db_config");
    if($config){ // $config is now equal contains of my database configuration
        $this->db = $this->load->database($config, TRUE);
    }else{
        $this->db = $this->load->database();
    }       
    $this->load->dbutil();
    echo '<pre>'.print_r($this->db, TRUE).'</pre>';
    echo '<pre>'.print_r($this->dbutil, TRUE).'</pre>';
}

我发现$ this-&gt; db和$ this-&gt; dbutil指向不同的数据库。

$ this-&gt; db指向会话中的数据库配置:

....
[username] => root
[password] => toor
[hostname] => localhost
[database] => coba
....

虽然$ this-&gt; dbutil指向我的配置文件(application / config / database.php)中的数据库配置:

....
[username] => root
[password] => toor
[hostname] => localhost
[database] => module_devel
....

这是不可取的,因为我希望$ this-&gt; db和$ this-&gt; dbutil都指向同一个数据库

我也检查了PHP: CodeIgniter; Managing two db connections; variable database parameters。但是,对我来说,解决方案根本不起作用。

那么,任何人都可以发现这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

似乎这是CodeIgniter的错误。但是,dbutil并不是我们唯一可以使用的。 有许多替代方法可以模拟dbutil可以做什么。

在我的情况下,我想生成一个“创建表”脚本。我最终使用

 $query = $this->db->query("SHOW CREATE TABLE `$table_name`");

要生成SQL插入脚本,我会手动选择,遍历记录并生成脚本。

希望这可以帮助其他有类似问题的人