Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在PHP web应用程序中存储postgres连接密码的全局变量_Php_Database_Postgresql_Yii_Yii2 - Fatal编程技术网

用于在PHP web应用程序中存储postgres连接密码的全局变量

用于在PHP web应用程序中存储postgres连接密码的全局变量,php,database,postgresql,yii,yii2,Php,Database,Postgresql,Yii,Yii2,我有一个netbeans中的yii2框架php项目连接到postgres数据库。 在config文件夹中有一个名为db.php的文件,其中包含db凭据 在某些文件(由控制器调用)中有连接到数据库的pg_connect(),因此每次部署项目且数据库的密码不同时,需要更改所有这些文件中的pg_connect()的密码,是否有一种方法可以使用db.php作为密码或使用全局变量存储密码。有关全局配置,请参阅\common\config\main.php或\common\config\main.php '

我有一个netbeans中的
yii2
框架php项目连接到
postgres数据库
。 在config文件夹中有一个名为
db.php
的文件,其中包含db凭据


在某些文件(由控制器调用)中有连接到数据库的
pg_connect()
,因此每次部署项目且数据库的密码不同时,需要更改所有这些文件中的
pg_connect()
的密码,是否有一种方法可以使用
db.php
作为密码或使用全局变量存储密码。

有关全局配置,请参阅
\common\config\main.php
\common\config\main.php

'components' => [
  'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'pgsql:host=localhost;dbname=db_name', 
    'username' => 'db_username',
    'password' => 'db_password',
    'charset' => 'utf8',
    'schemaMap' => [
      'pgsql'=> [
        'class'=>'yii\db\pgsql\Schema',
        'defaultSchema' => 'public' //specify your schema here
      ]
    ], // PostgreSQL
],

在db文件中创建连接对象本身,然后将其包含到其他文件中。这样,您只需在db文件中进行更改,仅此而已。我不知道对Yii的诽谤是否可以?你的意思是在db.file中创建pg_connect(),它在哪里使用require_调用过它一次?是的,没错。仅在文件中创建连接,并将该连接对象传递给其他文件
db。php
是唯一需要数据库凭据的文件。若您手动调用方法来连接到数据库,那个么您就做错了—这就是
db
组件的用途。