Php 无法运行查询?

Php 无法运行查询?,php,Php,我正在oop中开发一个新的登录系统。 我有以下代码: My index.php如下所示: 第6行中的变量$user发生错误 为什么我不能在第6行之后收到代码的结果 <? require_once ('core/init.php'); echo 'WORKING!'; $user = DB::getInstance()->get('users', array('username', '=', 'ozan')); if ($user->_error()){ echo

我正在oop中开发一个新的登录系统。 我有以下代码:

My index.php如下所示: 第6行中的变量
$user
发生错误

为什么我不能在第6行之后收到代码的结果

<?
require_once ('core/init.php');

echo 'WORKING!';

$user = DB::getInstance()->get('users', array('username', '=', 'ozan'));

if ($user->_error()){
    echo 'NO USER!';
}
else {
    echo 'OK!';
}

在DB类中,
$\u error
是一个私有变量。函数名似乎是
error
(无下划线)。因此您应该调用
$user->error()

显示错误日志。在Linux上:
sudo cat/var/log/apache2/error.log
在Windows上它将位于Apache目录(或WAMP)中。我不使用localhost。您应该仍然可以在服务器上执行此操作。
警告:PDO::_construct()要求参数2为字符串,第15行的/home/u527328290/public_html/classes/DB.php中给出的数组致命错误:在第34行的/home/u527328290/public_html/classes/DB.php中对非对象调用成员函数prepare(),错误日志显示
$this->\u pdo
不是表示
$this->\u pdo
尚未初始化的对象。现在,检查前面的警告,您可以看到当您应该传递字符串时,您正在将数组作为参数2传递给PDO构造函数。所以我打赌
Config::get('mysql/password')
将返回一个数组而不是字符串。我返回了,但仍然无法接收其余代码的结果。
<?

class DB {

    private static $_instance = null;
    private 
        $_pdo, 
        $_query, 
        $_error = false,
        $_result, 
        $_count = 0;

    private function __construct() {
        try {
            $this->_pdo = new PDO('mysql:host='. Config::get('mysql/host') . ';dbname' . Config::get('mysql/db'), Config::get('mysql/password') );
        } catch(PDOException $e) {
            die($e->getMessage());
        }
    }

    public static function getInstance() {

        if(!isset(self::$_instance)) {
            self::$_instance = new DB();
        }

        return self::$_instance;
    }

    public function query($sql, $params = array()) {
        $this->_error = false;
        if($this->_query = $this->_pdo->prepare($sql)) {
            x = 1;
            if(count($params)) {
                foreach($params as $param) {
                    $this->_query->bindValue(pos, $param);
                    x++;
                }

                if($this->_query->execute()) {
                    $this->_result = $this->_query->fetchAll(PDO:FETCH_OBJ);
                    $this->_count = $this->_query->rowCount();
                }
                else {
                    $this->_error = true;
                }
            }
        }

        return $this;
    }

    public function action($action, $table, $where = array() ) {
        if ( count($where) === 3 ) {
            $operators = array ('=','>','<','<=','<=');

            $field =    $where[0];
            $operator = $where[1];
            $value =    $where[2];

            if ( in_array($operator, $operators)) {
                $sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?"

                if ( !$this->query($sql, array($value))) {
                    return $this;
                }
            }
        }
        return false;
    }

    public function get($table, $where) {
        return $this->action('SELECT *', $table, $where);
    }

    public function delete($table, $where) {
        return $this->action('DELETE', $table, $where);
    }

    public function error() {
        return $this->_error;
    }

}
<?
session_start();

$GLOBALS['config'] = array (
    'mysql' => array(
        'host' => '***',
        'user' => '***',
        'pass' => '***',
        'db'   => '***',
    ),
    'remember' => array(
        'cookie_name'   => 'hash',
        'cookie_expiry' => 604800
    ),
    'session' => array(
        'session_name' => 'user'
    )
);

spl_autoload_register(function ($class) {
    require_once 'classes/'. $class . '.php';
});

require_once ('functions/sanitize.php');