尝试使用OOP类从数据库中获取多个记录

时间:2015-10-13 05:45:29

标签: php mysql oop

所以我遵循了如何在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);不会。

在此示例中,activedigi_settings.settings_pin数据库和表中的一行,usernamedigi_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;
}

我看过其他一些例子,但那些对我没什么帮助。

欢迎任何提示或提示!

谢谢!

0 个答案:

没有答案