PHP - 将值传递给mysqli_connect

时间:2017-03-30 08:13:06

标签: php

我有一个遗留项目,我有一个文件,其类在其构造方法中与数据库建立连接。

public $mysqli;

public function __construct(){
    $this->mysqli = mysqli_connect( "192.168.10.10", "homestead", "secret", "myDatabase" );
}

现在,我想使这有点灵活,并创建一个包含值数组的配置文件,我将传递给mysqli_connect方法。像这样:

配置文件:

$mysqliConfig = [
  '192.168.10.10',
  'homestead',
  'secret',
  'myDatabase'
]; 

然后只需要在另一个文件中使用它并在该文件的类构造函数中使用它:

require_once 'includes/config.php';

class Calculator{

    private $mysqli;

    public function __construct(){
        $this->mysqli = mysqli_connect($mysqliConfig);
    }

但这不起作用,我该怎么做?

3 个答案:

答案 0 :(得分:1)

您需要将配置文件中的变量提供给类。

require_once 'includes/config.php';

class Calculator{

    private $mysqli;

    public function __construct($mysqliConfig){
        $this->mysqli = mysqli_connect($mysqliConfig);
    }

}

$cal = new Calculator($mysqliConfig);

另外,我会使用关联数组来使配置更具可读性。

$mysqliConfig = [
  'host' => '192.168.10.10',
  'database' => 'homestead',
  'user' => 'secret',
  'password' => 'myDatabase'
];

// E.g. $mysqliConfig['host']

答案 1 :(得分:0)

您可以使用...令牌将配置解压缩到参数列表中:

$this->mysqli = mysqli_connect(...$mysqliConfig);

答案 2 :(得分:0)

我所做的是拥有.ini文件优点是它作为键值关联返回。

将配置详细信息保存在.ini文件中(path / to / config.ini) 在config.ini文件中,

database_name = mydatabase_name
password = my_password
host = host
system_root = system_root
other_details = other_details

然后在你的计算器课上,做

    <?php
    $currentConfig = parse_ini_file(path/to/config/config.ini);

    print_r($currentConfig); # prints the entire parsed .ini file

    print($currentConfig ['database_name ']); #prints "mydatabase_name"

?>