您在哪里放置数据库连接的连接设置(主机,dbname,用户,密码等)?它是放在数据库类或文件中,还是放在配置文件中,还是放在其他地方?
答案 0 :(得分:5)
理想情况下,您应该将其放在配置文件中,该文件可以像PHP数组一样简单。
例如:db_config.php
$db_config = array(
'host' => 'localhost',
'user' => 'username',
'password' => 'qwerty'
);
然后,您应该将此文件放在文档根目录之外,以获得最大的安全性。这样,如果您的webhost失败并开始将PHP文件作为文本文件提供(发生),则没有人可以获得您的数据库凭据。
答案 1 :(得分:3)
它可以通过多种方式完成,但常见的是将其放在设置文件中,并将该文件保留在webroot之外,以便有关数据库密码的信息不会意外泄漏到Web中。
答案 2 :(得分:1)
有很多方法可以做到,但我这样做是通过定义CONSTANTS:
Create a config/db.php
<?php
define('DB_INFO','mysql:host=localhost;dbname=test');
define('DB_USER','root');
define('DB_PASS','');
答案 3 :(得分:1)
对于PostgreSQL,我真的很想使用pg_service.conf
。它允许我将所有特定于连接的设置(主机名,数据库名,用户名,密码等)放入~/.pg_service.conf
或/etc/postgresql-common/pg_service.conf
,并为它们指定通用名称(服务名称)。
现在,任何想要连接到数据库的程序(Perl,PHP等)都可以简单地将"service=name"
指定为它们的连接字符串 - 漂亮,干净,安全且易于维护。
据我所知,MySQL对~/my.cnf
或/etc/my.cnf
文件有类似的机制 - 你可能想看一下。