如何避免在代码中的多个位置存储数据库凭据?

时间:2012-10-18 07:31:47

标签: php class global-variables database-connection connection-string

用户'Chacha102'在2010年发布了以下代码以回复this问题。我喜欢他的代码(如下所示),但想了解如何避免数据库连接凭据出现在多个代码中的位置。

这是他的代码:

$cb_db = new cb_db(USER, PASSWORD, NAME, HOST);
$cb_user = new cb_user($cb_db);

class cb_user {
    public __construct(cb_db $database)
    {
        $this->database = $database
    }

    protected function find_by_sql( $sql ) {

        $this->database = new cb_db(USER, PASSWORD, NAME, HOST);
        $result_set = $cb_db->query( $sql );

        $object_array = array();
        while( $row = $cb_db->fetch_array( $result_set ) ) {
            $object_array[] = self::instantiate( $row );
        }
        return $object_array;
    }
}

问题在于我将拥有许多类和函数,并且不希望用户名将密码硬编码到每个类中。如果必要的话,我可以在一个地方更新它。

请问最好的方法是什么?

1 个答案:

答案 0 :(得分:5)

为什么不使用“config.php”来声明您将使用的所有变量,例如用户名,数据库,服务器,可能与网站相关的其他设置等。