Denisov80
@Denisov80
Юный Программист

Как исправить конструктор класса для подключения к Базе данных через PDO?

Подскажите как исправить конструктор для работы с Базой Данных (mysqli) для работы с PDO?

class ClientData extends Dbconfig {	
    protected $hostName;
    protected $userName;
    protected $password;
    protected $dbName;
	
    private $table = 'people';
    private $dbConnect = false;
	
	
	// Констурктор - Заполняет поля и выполняет подключение к Базе данных
    public function __construct(){
        if(!$this->dbConnect){ 		
	    $database = new dbConfig();            
            $this -> hostName 	= $database -> serverName;
            $this -> userName 	= $database -> userName;
            $this -> password 	= $database -> password;
	    $this -> dbName 	        = $database -> dbName;
			// Подключение к базе данных
            $conn = new mysqli($this->hostName, $this->userName, $this->password, $this->dbName);
            if($conn->connect_error){
                die("Error failed to connect to MySQL: " . $conn->connect_error);
            } else{
                $this->dbConnect = $conn;
            }
        }
    }
  	
	public function clientList(){		
		$sqlQuery 	= "SELECT * FROM ".$this->table." ";		
		$result 	= mysqli_query($this->dbConnect, $sqlQuery);
		$numRows 	= mysqli_num_rows($result);
		// Дальнейшие Действия
	}
}


Делаю так, но не работает:
class ClientData extends Dbconfig {
	
	public $table = 'people';
	public $dbConnect = false;
	
	public function __construct(){		
	if(!$this->dbConnect){        
	    $host 		= "localhost";
        $user 		= "admin";
        $password 	= "";
        $dbname 	= "forum";
        $charset 	= "utf8";
        
        $dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
      
		try {
				$pdo	 = new PDO($dsn, $user, $password);
			}
			catch (PDOException $e) {
				echo "Connection failed: " . $e->getMessage();
			}
			$this->dbConnect = $pdo;
		}	
	}
	
	public function clientList(){
		
		$sqlQuery 	= "SELECT * FROM ".$this->table." ";
		
		//после добавления этой строки - выдает ошибку 500
		$result 	= $this->dbConnect->query($sqlQuery);
		// Дальнейшие Действия
	}
}


И не могу понять, подключения нет, или запрос не верный, не могу проверить переменную $dbConnect
Так как Объект этого класса запускается через JS

В примере который я написал, данные для подключения занес сразу в переменные.
Без создания Объекта на основе класса dbConfig() $database = new dbConfig();
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы