如何使用单独的密码登录数据库?

时间:2010-10-26 05:58:41

标签: php codeigniter

如何使用单独的密码登录数据库?我们只能在database.php中配置一个用户。我希望登录过程应该使用不同的mysql用户名和密码,因为该表是受保护的。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

按照用户文档,您将找到此页面: http://codeigniter.com/user_guide/database/connecting.html

文档说明您可以通过指定组来连接到多个数据库。 如果查看database.php文件,您将看到连接数组的格式如下:

$db['default']['hostname'] = "localhost";

此处的“群组”为默认,按照您一直以来的方式加载:

$this->load->database();

当您需要连接到另一个数据库时,请指定一个新组:

$db['my_secret_db']['hostname'] = "localhost";
$db['my_secret_db']['username'] = "other_mysql_user";
...

你加载它就像这样:

$MyOriginalDb = $this->load->database('default', true);
$MyOtherDb = $this->load->database('my_secret_db', true);

通过将这些连接加载到自己的对象中,您现在将使用:

$MyOtherDb->query();

而不是

$this->db->query();

我希望这会有所帮助。

答案 1 :(得分:2)

在database.php中创建另一个连接组

$active_group = "post";
$active_record = TRUE;

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "user";
$db['default']['password'] = "user-only";
$db['default']['database'] = "something";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

$db['post']['hostname'] = "localhost";
$db['post']['username'] = "admin";
$db['post']['password'] = "admin-only";
$db['post']['database'] = "something";
$db['post']['dbdriver'] = "mysql";
$db['post']['dbprefix'] = "";
$db['post']['pconnect'] = TRUE;
$db['post']['db_debug'] = TRUE;
$db['post']['cache_on'] = FALSE;
$db['post']['cachedir'] = "";
$db['post']['char_set'] = "utf8";
$db['post']['dbcollat'] = "utf8_general_ci";

创建另外两个模型文件。一个文件加载'default'配置,另一个加载'post'配置。

例如:

$DB1 = $this->load->database('default', TRUE);
$DB2 = $this->load->database('post', TRUE);