Ion Auth(Codeigniter) - 如何使用不同的数据库

时间:2014-02-18 08:28:00

标签: codeigniter ion-auth

是否可以使用不同的数据库通过Ion Auth对用户进行身份验证? 我想创建一个专门用于用户身份验证的数据库。因此,它应该与事务数据库分开。 怎么做?

谢谢。

2 个答案:

答案 0 :(得分:2)

简而言之......是的,您可以使用不同的数据库进行身份验证。除了默认配置之外,您还需要在application/config/database.php文件中创建第二个数据库配置(类似于下面的内容)。

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "db_name";
$db['default']['dbdriver'] = "mysql";

$db['authentication']['hostname'] = "localhost";
$db['authentication']['username'] = "root";
$db['authentication']['password'] = "";
$db['authentication']['database'] = "auth_db_name";
$db['authentication']['dbdriver'] = "mysql";

有关详细信息,请参阅 - http://ellislab.com/codeigniter/user-guide/database/configuration.html

然后,您必须修改ion_auth模型以使用第二个数据库配置,您将在加载数据库时设置该配置。

$auth_db = $this->load->database('authentication', TRUE);

然后更改模型中的所有数据库查询,将$this->db替换为$auth_db

因此,$this->db->select('password, salt')将成为$auth_db->select('password, salt')

有关详细信息,请参阅 - http://ellislab.com/codeigniter/user-guide/database/connecting.html

希望有所帮助!

答案 1 :(得分:2)

最简单的方法是扩展MY_Mark所说的内容。

创建新的数据库配置

$db['authentication']['hostname'] = "localhost";
$db['authentication']['username'] = "root";
$db['authentication']['password'] = "";
$db['authentication']['database'] = "auth_db_name";
$db['authentication']['dbdriver'] = "mysql";

然后在ion_auth_model.php的构造函数中执行以下操作:

$this->db = $this->load->database('authentication', TRUE);

它应该在那之后起作用。