我正在开发一个需要连接数据库的简单php应用程序 这是创建与db
的连接的代码的一部分private $mysqli;
public function __construct()
{
$this->mysqli = new \mysqli("localhost", "root", "password", "mydb");
}
我的问题:如何避免硬编码凭证,客户要求我避免这种情况?
我应该在哪里设置这些设置?
答案 0 :(得分:1)
正如@ user1978142所说,配置文件最适合存储这种信息。优选地,该配置文件应存储在服务器目录之外(因此没有人可能意外地获得外部访问)。此外,您应确保仅限用户选择此文件
答案 1 :(得分:1)
使用config
文件:
require_once("../path-to-your-config/config.php");
使用示例:
require_once("../path-to-your-config/config.php");
class ABC {
private $mysqli;
public function __construct()
{
$this->mysqli = new \mysqli(Conf::HOST, Conf::USER, Conf::PASSWORD, Conf::DB);
}
}
答案 2 :(得分:0)
创建一个名为credentials.php
的单独文件,并将其放在不属于root
文件夹的文件夹中,或限制对该文件夹及其内部文件的访问。在此文件中,分配您想要的所有值$server
,$username
,$password
等,并在需要时,只需使用require_once
功能即可访问他们。
如果从一个数据库更改为另一个数据库,您还可以考虑使用PDO
。