Is it recommended to use a constructor to establish a database connection in PHP, or are there better alternatives?

It is not recommended to establish a database connection using a constructor in PHP as it can lead to unnecessary overhead for every instance of the class. A better alternative is to create a separate method specifically for establishing the database connection, which can be called whenever needed.

class Database {
    private $connection;

    public function connect() {
        $this->connection = new mysqli('localhost', 'username', 'password', 'database_name');
        if ($this->connection->connect_error) {
            die("Connection failed: " . $this->connection->connect_error);
        }
    }

    // Other database methods can be defined here
}

// Example of using the Database class
$database = new Database();
$database->connect();