Является ли продление занятий хорошей практикой?

У меня есть соединение PDO в моем классе базы данных, и недавно я использовал это как расширение для других классов, т.е.class Users extends Database это позволяет мне всегда поддерживать соединение с базой данных без необходимости иметь функцию в моем классе Users.

Однако кто-то указал, что я не должен делать это как плохую практику, почему именно эта плохая практика? И как я могу подключиться к моему классу базы данных в моем пользовательском классе без расширения?

В настоящее время у меня есть вызов к базе данных внутри моегоviewall() функция, которую я пытался положить в__construct() функция однако настаивала на наличии параметров

Я пробовал приведенный ниже код, однако я получаю сообщение об ошибке следующим образом:

Fatal error: Call to undefined method Database::prepare() in E:\xampp\htdocs\attendance\class.Register.php on line 13

Любые идеи о том, как я могу зайти в свою базу данных?

Это мой код:

class.Connect.php

<?php

// Database connection PDO

class Database {

    public function __construct() {
        // Connection information
        $host   = 'localhost';
        $dbname = 'attendance';
        $user   = 'root';
        $pass   = '';

        // Attempt DB connection
        try
        {
            $this->pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            //echo 'Successfully connected to the database!';
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }

    }

     public function __destruct()
    {
        // Disconnect from DB
        $this->pdo = null;
        //echo 'Successfully disconnected from the database!';
    }


}

?>

class.Register.php

<?php

require 'class.Connect.php';

class Register {

    public function viewall() {
        $pdo = new Database();

        $stmt = $pdo->prepare('SELECT * FROM users');
        $stmt->execute();

    $stmt->fetch();

    }
}

$run = new Register();
$run->viewall();

?>

Ответы на вопрос(3)

Ваш ответ на вопрос