Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试使用OOP类从数据库中获取多条记录_Php_Mysql_Oop - Fatal编程技术网

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

Php 尝试使用OOP类从数据库中获取多条记录,php,mysql,oop,Php,Mysql,Oop,因此,我遵循了一个关于如何在OOP中创建登录系统的教程。现在,我在同一台MySQL服务器上使用多个数据库。我想在需要时从所有数据库中获取记录 问题是,我现在不知道该怎么做 我有以下代码: public function __construct($user = null) { $this->_db = DB::getInstance(); $this->_sessionName = Config::get('session/session_name')

因此,我遵循了一个关于如何在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);
        }
    }
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;
}
我注释掉了我添加的代码行。我的线路应该从
digi\u设置
数据库和
settings\u pin
表中获取信息

这一切都很好,但当我试图从原始数据库和表(即
digi\u users.users
)中获取信息时,它不会显示这些信息,而只显示
digi\u设置
数据库中的信息

例如,
echo$user->data()->active==='yes'?'选中“:”
可以正常工作,但是
回声转义($user->data()->username)不会

在本例中,
active
digi\u设置中的一行。settings\u pin
数据库和表,而
username
digi\u users.users
数据库和表中的一行

我正在使用以下代码查找用户:

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);
        }
    }
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;
}
我觉得我遇到的问题与这行代码有关:

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);
        }
    }
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;
}
我看过一些其他的例子,但这些对我帮助不大

欢迎任何提示或提示


谢谢

你使用什么框架?答案可能在它的文档中。@Asenar我真的弄明白了,谢谢!你使用什么框架?答案可能在它的文档中。@Asenar我真的弄明白了,谢谢!