gpt4 book ai didi

PHP 包含数组警告

转载 作者:行者123 更新时间:2023-11-29 19:30:02 25 4
gpt4 key购买 nike

我在 php 中的数组方面遇到问题,我用它来存储不同环境的配置数据。我的想法是,当从本地测试到在服务器上使用它时,我只需要切换带有配置数据的文件。该文件如下所示:

<?php
$_ENV = array(
'MySQL' => array(
'database'=>'<DATABASENAME>',
'server'=>'<SERVERNAME>',
'username'=>'<USERNAME>',
'password'=>'<PASSWORD>'
)
);
?>

我这样包含它:

include('../env.php');

对于与数据库的连接,我这样使用:

$conn = mysql_connect($_ENV['MySQL']['server'], $_ENV['MySQL']['username'],$_ENV['MySQL']['password']) or die("No connection possible: " . mysql_error());

忽略我仍在使用 mysql 而不是 PDO 或 mysqli 的事实,这是我很快就会改变的事情,这应该可行。但事实并非如此:

Notice: Undefined index: MySQL in D:\data\dev\applications\wtc-feedback\dashboard\include\SQLrequest.php on line 36

奇怪的是,当我使用 var_dump() 将环境变量转储到屏幕上时,索引和内容都很好。

有人知道如何解决这个问题吗?

最佳答案

如果您想使用环境变量,请使用 getenv , putenv

或使用 .env 文件(包 here ,文档 here )并将 .env 添加到 .gitignore

事实上你的代码必须是这样的:

env.php:

<?php

putenv('DB_NAME=DATABASENAME');
putenv('DB_HOST=SERVERNAME');
putenv('DB_USER=USERNAME');
putenv('DB_PASS=PASSWORD');

连接.php:

<?php

include('../env.php');
$conn = mysql_connect(getenv('DB_HOST'), getenv('DB_USER'), getenv('DB_PASS'))
OR die("No connection possible: " . mysql_error());



“.env”方式:

.env 文件:

DB_NAME=DATABASENAME
DB_HOST=SERVERNAME
DB_USER=USERNAME
DB_PASS=PASSWORD

连接.php:

<?php

require_once('../vendor/autoload.php');

use Symfony\Component\Dotenv\Dotenv;
(new Dotenv())->load(__DIR__.'/../.env');

$conn = mysql_connect(getenv('DB_HOST'), getenv('DB_USER'), getenv('DB_PASS'))
OR die("No connection possible: " . mysql_error());

关于PHP 包含数组警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41848958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com