Извлечение данных из БД с помощью PDO и ООП PHP

187
16 июля 2021, 08:10

Набрался сил и начал изучать ООП. Идет тяжело. Второй день бьюсь с проблемой. Без использования ООП все работает без проблем. За пять минут все было готово. Используя ООП пока возникают трудности. Две настольные книги не помогают, интернет тоже. stackoverflow.com помог решить другие проблемы с этим кодом. Где-то я упустил что-то видимо по незнанию или не вижу проблему. Собственно, есть класс ConnectDB с методами connect(), select(). Необходимо вывести простую выборку из БД. Для этого подойдет query(). Класс ConnectDB:

<?php
    class ConnectDB 
    {
        public $pdo;//protected $pdo;
        public $db_user='root';
        public $db_pass='';
        public $db_host='localhost';
        public $db_name='test';

        public function connect() 
        {
            try {
                $this->pdo=new PDO('mysql:$this->db_host;dbname=$this->db_name', $this->db_user, $this->db_pass);
                echo "База подключена";
                return $this->pdo;
            }
            catch (PDOException $e) {
                echo "Невозможно установить соединение с базой данных";
                return $e->getMessage();
            }
        }

        public function select()
        {
            $sel = $this->pdo->query('SELECT id_user FROM users');    
            return $sel;  
        }
    }
?>

Код вывода данных:

<?php 
$test = new ConnectDB();
$test->connect();
echo $test->select();
?>

Проверяю var_dump($test->select()) - выводит bool(false) В итоге данные из таблицы не выводятся. В чем моя ошибка?

Answer 1
'mysql:$this->db_host;dbname=$this->db_name'

В одинарных кавычках не происходит подстановка переменных

READ ALSO
delete pathc put symfony routing

delete pathc put symfony routing

Есть пустой проект без фреймворка, но со скачанным symfony/routerВот сам роутинг:

408
Регулярка на php

Регулярка на php

Необходима регулярка на php которая заменяет пустое место после точки на пробелТо бишь "Дерево

341