在何处放置数据库连接设置?

时间:2012-11-11 06:22:04

标签: php pdo

您在哪里放置数据库连接的连接设置(主机,dbname,用户,密码等)?它是放在数据库类或文件中,还是放在配置文件中,还是放在其他地方?

4 个答案:

答案 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文件有类似的机制 - 你可能想看一下。