В настоящее время я пишу свое первое приложение PHP с использованием OOP и PDO. При этом я работаю над классом подключения, чтобы при необходимости я мог инициировать соединение с базой данных. Я считаю, что условия для того, как я это делаю, - это инъекция зависимостей.PHP - класс соединения PDO - невозможно получить
У меня возникла ошибка при попытке получить доступ к соединению.
Это мой класс соединение:
class db{
private $host = '';
private $dbname = '';
private $username = '';
private $password ='';
public $con = '';
function __construct(){
$this->connect();
}
function connect(){
try{
$this->con = new PDO("mysql:host=$this->host;dbname=$this->dbname",$this->username, $this->password);
$this->con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo 'We have a problem!';
}
}
}
И это, как я пытаюсь вызвать его внутри других классов.
private $con;
public function __construct(db $con) {
$this->con = $con;
}
Однако это ошибка, которую я получаю при попытке запустить ее.
Catchable fatal error: Argument 1 passed to users::__construct() must be an instance of db, none given.
Любые советы по поводу того, что я делаю неправильно, будут высоко оценены.
То, что на самом деле вы не можете понять из фразы «должно быть экземпляром db, ни одного данного».? – zerkms