我正在尝试使用 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 文件中的凭据能够被识别并成功提交到数据库。
也许,您可以尝试直接从 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);