如何包括数据库登录以使用文件配置 .env 连接到 MySQLI?



我尝试使用文件.env包含登录数据库的配置,但不起作用。

这是我的配置文件 .env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

这是我的代码:

<?php
include_once ".env";
$host = "DB_HOST";
$user = "DB_USERNAME";
$pass = "DB_PASSWORD";
$db = "DB_DATABASE";
$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_errno)
{
printf("<br><br><br>");
printf("Error connect: %sn", $mysqli->connect_error);
exit();
}
echo 'laravel';
?>

我尝试使用我的代码,但出现错误:Error connect: Unknown MySQL server host 'DB_HOST' (2)

您只能将include用于 PHP 文件。但是要读取这样的文件,您将需要另一个称为parse_ini_file()的函数:

$dbconfig = parse_ini_file(".env");
$host = $dbconfig["DB_HOST"];
$user = ... 

或者你可以使用一个专用的库,如phpdotenv

我从来没有真正使用过 Laravel,但也许这会有所帮助?

$a = fopen(".env", "r");
$settings = array();
if ($a) {
while (($b = fgets($a)) !== false) {
$setting = explode("=", $b);
array_push($settings, array($setting[0]=>$setting[1]));
}
fclose($a);
} else {
// Error for not being able to open file.
}
var_dump($settings);

它现在应该具有$settings中的所有设置。 然后这样用?

<?php
$a = fopen(".env", "r");
$settings = array();
if ($a) {
while (($b = fgets($a)) !== false) {
$setting = explode("=", $b);
array_push($settings, array($setting[0]=>$setting[1]));
}
fclose($a);
} else {
// Error for not being able to open file.
}
$mysqli = new mysqli($settings["DB_HOST"], $settings["DB_USERNAME"], $settings["DB_PASSWORD"], $settings["DB_DATABASE"]);
if ($mysqli->connect_errno) {
printf("<br><br><br>");
printf("Error connect: %sn", $mysqli->connect_error);
exit();
}
echo 'laravel';
?>

最新更新