我遇到了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。但是,对我来说,解决方案根本不起作用。
那么,任何人都可以发现这里有什么问题吗?
答案 0 :(得分:0)
似乎这是CodeIgniter的错误。但是,dbutil并不是我们唯一可以使用的。 有许多替代方法可以模拟dbutil可以做什么。
在我的情况下,我想生成一个“创建表”脚本。我最终使用
$query = $this->db->query("SHOW CREATE TABLE `$table_name`");
要生成SQL插入脚本,我会手动选择,遍历记录并生成脚本。
希望这可以帮助其他有类似问题的人