проблема с объектом PDO

поэтому я создаю сайт членства, пока у меня есть только 2 класса, класс для подключения получил базу данных и класс для управления пользователями

вот класс для базы данных:

class dbConnect { protected $db_conn; public $db_host = '127.0.0.1'; public $db_user = 'root'; public $db_pass = ''; public $db_name = 'db'; public function connect() { try { $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass); return $this->db_conn; } catch(PDOException $e) { return $e->getMessage(); } } } 

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

 class ManageUsers { public $link; function __construct() { $db_connection = new dbConnect(); $this->link = $db_connection->connect(); return $this->link; } function registerUsers($username,$email,$password,$ip_adress,$date) { $query = $this->link->prepare("INSERT INTO `users` (username,email,password,ip_adress,date_joined) VALUES(?,?,?,?,?)"); $values = [$username,$email,$password,$ip_adress,$date]; $query->execute($values); $confirm = $query->rowCount(); return $confirm; } } 

Теперь я просто запускаю тестовый объект, чтобы узнать, все ли это работает

 $test = new ManageUsers(); echo $test->registerUsers('bob','a@a.com','lol','127.0.0.1','2012'); 

теперь я получаю сообщение об ошибке, которое я вызываю для инструкции подготовки к не-объекту. Честно говоря, я не понимаю, так как я создаю объект в методе построения. ну любые советы помогают Спасибо!

Solutions Collecting From Web of "проблема с объектом PDO"

Я думаю, что объект PDO недопустим, потому что вы используете двойные кавычки с методом / свойством объекта, в этом случае вам нужно использовать сложную строчную нотацию ( "{$object->property}" ) или присоединиться к строкам . (точка)

о php-строках

 $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass); 

изменить на:

 $this->db_conn = new PDO("mysql:host={$this->db_host};dbname={$this->db_name}", $this->db_user,$this->db_pass); 

У меня есть действительно похожий сценарий от вас, вот он

 class dbConnect { protected $db_conn; public $db_host = '127.0.0.1'; public $db_user = 'root'; public $db_pass = 'roadmin'; public $db_name = 'todo'; public function connect() { try { $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass); return $this->db_conn; } catch(PDOException $e) { return $e->getMessage(); } } } class ManageUsers { public $link; function __construct() { $db_connection = new dbConnect(); $this->link = $db_connection->connect(); return $this->link; } function registerUsers($username,$email,$password,$ip_adress,$date) { $query = $this->link->prepare("INSERT INTO `users` (username,email, password, ip_adress, date_joined) VALUES(?,?,?,?,?)"); $values = [$username,$email,$password,$ip_adress,$date]; $query->execute($values); $confirm = $query->rowCount(); return $confirm; } function loginUser() { } } $test = new ManageUsers(); echo $test->registerUsers('bob','a@a.com','lol','127.0.0.1','2012');