gpt4 book ai didi

CodeIgniter 多数据库使用,无需更改第一个数据库的现有代码

转载 作者:行者123 更新时间:2023-12-04 03:27:26 24 4
gpt4 key购买 nike

我已经使用 codeigniter 成功配置了第二个数据库,并且能够创建一个表。现在的问题是,使用 $this->db 的所有以前存在的代码行现在使用第二个数据库,所以自然会弹出错误。让我更详细地解释一下:

我使用了 codeigniter 的迁移库,在新的迁移中,我使用 dbforge 创建了数据库,就像这样 $this->dbforge->create_database('website_store') .到目前为止一切顺利,然后我使用 $DB2 = $this->load->database('store', TRUE); 连接到这个数据库并创建一个表。这里也一切都很好。

然后迁移结束,codeigniter 尝试更新迁移表以推送最新版本,但查看 store数据库而不是默认数据库,所以它弹出这个错误:

Table 'website_store.migrations' doesn't exist
UPDATE `migrations` SET `version` = 45

希望有人知道使用多个数据库和迁移库。顺便说一下,在database.php文件中,设置为使用默认数据库: $active_group = "default"; ,不是商店数据库,所以它应该可以工作。看起来迁移库看到已经加载了一个数据库,感觉很懒惰并使用那个代替。

注意:
看起来这些人有类似的问题,他们通过将 'pconnect' 设置为 'false' 来解决这些问题,但是保持与两个数据库的连接会很好:

Convenient Way to Load Multiple Databases in Code Igniter

Error Using Multiple Database In CodeIgniter

最佳答案

在 CI 中,我使用以下方法处理了多个数据库:

function readFromOtherDB(){
$config = array(
'hostname' => "XXX",
'username' => "XXX",
'password' => "XXX",
'database' => "XXX",
'dbdriver' => "mysql",
'dbprefix' => "",
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => "",
'char_set' => "utf8",
'dbcollat' => "utf8_general_ci"
);

$otherDb = $this->ci->load->database($config, true);

$query = $otherDb->get_where('users', array('email' => $_email));

$otherDb->close();
}

关于CodeIgniter 多数据库使用,无需更改第一个数据库的现有代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17715609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com