gpt4 book ai didi

database - 在 CodeIgniter 3 中即时更改数据库名称

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:41 25 4
gpt4 key购买 nike

我需要在验证用户后更改数据库名称。在 database.php 文件中有这个。

 $db['default'] = array(....
'database' => 'databasename1',
...
);

我知道你可以用$this->db->database显示数据库的值。我想在用户 session 期间将其更改为另一个名称。

我尝试过使用 $this->db->set_database('databasename2') 和其他各种尝试,但没有解决方案。我也搜索过,找不到解决方案。

有人知道如何在用户 session 期间更改数据库名称吗?

最佳答案

因此您可以从 session 中获取连接详细信息并使用这些详细信息手动连接到数据库并在完成后关闭它

手动连接到数据库

$this->load->database();

此函数的第一个参数可以选择性地用于从您的配置文件中指定一个特定的数据库组,或者您甚至可以为您的配置文件中未指定的数据库提交连接值。示例:

要从您的配置文件中选择一个特定的组,您可以这样做:

$this->load->database('group_name');

其中 group_name 是您的配置文件中连接组的名称。

要手动连接到所需的数据库,您可以传递一个值数组:

$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";

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

有关每个值的信息,请参阅配置页面。

或者您可以将数据库值作为数据源名称提交。 DSN 必须具有此原型(prototype):

$dsn = 'dbdriver://username:password@hostname/database';

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

要在使用 DSN 字符串连接时覆盖默认配置值,请将配置变量添加为查询字符串。

$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';

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

手动关闭连接

虽然 CodeIgniter 智能地负责关闭数据库连接,但您可以显式关闭连接。

$this->db->close();

有关连接到多个数据库的更多信息,请阅读此 https://ellislab.com/codeigniter/user-guide/database/connecting.html

关于database - 在 CodeIgniter 3 中即时更改数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899449/

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