Как включить логин базы данных для подключения к MySQL с конфигурацией файла .env? - PullRequest
0 голосов
/ 18 октября 2019

я пытаюсь включить конфигурацию базы данных входа в систему с файлом .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: %s\n", $mysqli->connect_error);
            exit();
        }

    echo 'laravel';

?>

я пытаюсь с моим кодом, но я получаю ошибку: Error connect: Unknown MySQL server host 'DB_HOST' (2)

Ответы [ 2 ]

3 голосов
/ 18 октября 2019

Вы можете использовать include только для файлов PHP. Но для чтения такого файла вам понадобится другая функция с именем parse_ini_file():

$dbconfig = parse_ini_file(".env");

$host = $dbconfig["DB_HOST"];
$user = ... 

. Или вы можете использовать выделенную библиотеку, такую ​​как phpdotenv

0 голосов
/ 18 октября 2019

Я никогда не использовал 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: %s\n", $mysqli->connect_error);
    exit();
}
echo 'laravel';
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...