DB-класс в pdo, подготовить и выполнить не работает, почему? - PullRequest
0 голосов
/ 04 октября 2018

пытается настроить мой класс БД на php, следуя учебному пособию по YouTube, в учебном пособии он работает нормально, но на моем компьютере "$ this -> _ query-> execute ()" возвращает false

здесьмой класс:

class DB {
private static $_instance = null;
private $_pdo, $_query, $_error = false, $_results, $_count = 0, $_lastInsertID = '';

private function __construct() {
    try{
        $this->_pdo = new PDO('mysql:host=127.0.0.1;dname=database','root','');
    } catch (PDOException $e) {
        die($e->getMessage());
    }
}

public static function get_instance(){
    if(!isset(self::$_instance)){
        self::$_instance = new DB();
    }
    return self::$_instance;
}

public function query($sql,$params = []){
    $this->_error = false;

    if($this->_query = $this->_pdo->prepare($sql)){
        $x = 1;
        var_dump($params);
        if(count($params)){
            foreach ($params as $param){
                $this->_query->bindValue($x,$param);
                $x++;
            }
        }

        if($this->_query->execute()){
            $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
            $this->_count = $this->_query->rowCount();
            $this->_lastInsertID = $this->_pdo->lastInsertId();
        }else{
            $this->_error = true;
        }
    }
    return $this;
}

и вот php-файл, который вызывает функцию:

require_once 'classes/DB.php';

$db = DB::get_instance();

$contact = 
['Ewerton','Marschalk','Ewerton@hotmail.com','44444444444','5555555555555'];


 $db->query("INSERT INTO contacts (`fname`,`lname`,`email`,`cell_phone`,`home_phone`) values (?,?,?,?,?)",$contact);

почему это не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...