2014-11-19 7 views
0

Этот код вызывает ошибку: Fatal error: вызов функции-члена prepare() для не-объекта в D: \ ProgramFile \ Xampp \ htdocs \ site \ shop \ class \ DB.php on line 32вызов функции-члена

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($x, $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; 
} 

что может вызвать его. Извините, я очень новичок в PDO и OOP.

EDITED мой PDO declear и __construct функция

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

Просто означает, что '$ this -> _ pdo' не является объектом с такой функцией. Где объявлен ваш PDO и как его зовут? –

+0

Возможно, вам не хватает некоторых ошибок при настройке вашего PDO-соединения. Вероятно, это произойдет в вашей функции '__construct(). Отладка вашего соединения скажет вам, в чем проблема –

ответ

0

после $this->_pdo = new PDO(...), ваш $this->_pdo является false. var_dump($this->_pdo), чтобы посмотреть.

+1

нужно больше объяснений –

Смежные вопросы