无法使用vlucan/dotenv加载.env文件

问题描述 投票:0回答:1

我正在尝试使用 PHP 向数据库提交表单,并尝试使用

composer require vlucas/phpdotenv
加载包含数据库凭据的 .env 文件,如果我尝试加载
,它会在我的文本编辑器 
undefined type Dotenv\Dotenv\Dotenv
 中显示错误如存储库中所示,来自 
.env
 文件的 
/src
 文件中的 Database.php
文件。对于
undefined variables
文件中
$form_data_db
赋值期间使用的所有变量,我也收到
handleForm.php
错误。我怎样才能让这一切顺利进行?

这是该项目的存储库https://github.com/Thebuilderekes/tw-php/tree/try-env

我希望 .env 文件中的凭据能够被识别并成功提交到数据库。

php dotenv
1个回答
0
投票

也许,您可以尝试直接从 Database 类构造函数内的环境变量加载数据库连接参数,而不将它们作为参数传递。或者尝试在handleform.php 中获取环境变量,然后将它们传递给数据库类。我的意思是:

use Dotenv\Dotenv;

class Database {
    protected $connection;

    public function __construct() {
        // Load environment variables
        $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . "/src");
        $dotenv->load();
        
        // Get database connection parameters from environment variables
        $hostname = getenv('HOSTNAME');
        $dbname = getenv('DBNAME');
        $username = getenv('USERNAME');
        $password = getenv('PASSWORD');
        
        // Your following codes..
    }
}

或者在你的handleform.php中:

$hostname = getenv('HOSTNAME');
$dbname = getenv('DBNAME');
$username = getenv('USERNAME');
$password = getenv('PASSWORD');

$form_data_db = new Database($hostname, $dbname, $username, $password);
© www.soinside.com 2019 - 2024. All rights reserved.