ООП PHP с подключением PDO, включая другой класс страницы

страница class / dbConnect.php

class dbConnect {
/*
* initiate mysql database host,username,password,database name
*/

private $host;
private $dbName;
private $uname;
private $upass;
private $con;

public function __construct($host, $database, $userName, $password) {
$this->host = $host;
$this->dbName = $database;
$this->uname = $userName;
$this->upass = $password;
$this->connectDB();
}

public function connectDB() {
/*
* @var $dsn mean data source name for pdo connection
*/
$dsn = "mysql:host=" . $this->host . ";dbName=" . $this->dbName;
try {
$this->con = new PDO($dsn, $this->uname, $this->upass);
} catch (Exception $e) {
echo $e->getMessage();
}
}

}

class/sampleView.php

/*
* include dbConnect class for this SampleView Class Page
*/
require_once './dbConnect.php';class sampleViews extends dbConnect{

function viewUsers(){
/*
* dbConncect Class Connection variable access
*/
$connection = $this->con;

}
}

Это правильно? Я не могу получить доступ к dbConnect Class $ con varibale, используя метод $ this-> with the sampleView Class

и может быть в состоянии сделать другое расширение класса местоположения, включая страницу таким образом .. Помогите Plezzzz

-1

Решение

Вы не можете получить доступ private переменные даже при расширении родительского класса. Вы должны изменить его на protected:

protected $con;

Вам также нужно будет создать родительский класс, иначе он никогда не будет создавать экземпляр родительского (расширенного) класса.

function __construct() {
parent::__construct($host, $username, $password, $db);
}

Выше будет внутри вашего class SimpleViews extends dbConnect {.... учебный класс

2

Другие решения

Страница dbConnect

изменено

protected $host;
protected $dbName;
protected $uname;
protected $upass;
protected $con;

и страница SampleView

public function __construct() {
parent::__construct('localhostr', 'test', 'root', '');
}

function chkConnection() {
/*
* dbConncect Class Connection variable access
*/
$dbcon = $this->con;
if ($dbcon) {
echo "successfully Connect database";
} else {
echo "sorry Could not be connect databsae";
}
}

Кто-нибудь исправит мой код?

0

По вопросам рекламы [email protected]