所以我遵循了如何在OOP中创建登录系统的教程。现在,我在同一个MySQL服务器上使用多个数据库。我想在需要时从所有数据库中获取记录。
问题是,我现在不知道如何解决这个问题。
我有以下代码:
public function __construct($user = null) {
$this->_db = DB::getInstance();
$this->_sessionName = Config::get('session/session_name');
if(!$user) {
if(Session::exists($this->_sessionName)) {
$user = Session::get($this->_sessionName);
if($this->find('users', $user)) {
$this->_isLoggedIn = true;
//$this->find('digi_settings.settings_pin', $user);
} else {
// process logout
}
}
} else {
$this->find($user);
}
}
我注释掉了我添加的代码行。我的行应该从digi_settings
数据库和settings_pin
表中获取信息。
这一切都运行正常,但是当我尝试从原始数据库和表(digi_users.users
)获取信息时,它不会显示该信息,而只显示来自digi_settings
数据库的信息。
例如,echo $user->data()->active === 'yes' ? 'checked' : ''
可以正常工作,但echo escape($user->data()->username);
不会。
在此示例中,active
是digi_settings.settings_pin
数据库和表中的一行,username
是digi_users.users
数据库和表中的一行。
我正在使用以下代码查找用户:
public function find($table, $user = null) {
if($user) {
$field = (is_numeric($user)) ? 'id' : 'username';
$data = $this->_db->get($table, array($field, '=', $user));
if($data->count()) {
$this->_data = $data->first();
return true;
}
}
return false;
}
public function data() {
return $this->_data;
}
我觉得我遇到的问题与这行代码有关:
if($data->count()) {
$this->_data = $data->first();
return true;
}
我看过其他一些例子,但那些对我没什么帮助。
欢迎任何提示或提示!
谢谢!