2012-11-11 30 views
8

你把數據庫連接的連接設置(比如host,dbname,user,password)放在哪裏?它是放置在數據庫類或文件中,還是置於配置文件或其他位置?何處放置數據庫連接設置?

+0

這取決於你的實施... 你可以把一個設置文件,所以你可以隨時自定義。 或者如果你喜歡面向對象,那麼你也可以使用類.. 但可能使用的設置文件。 – Pratik

+2

我通常把它放在web根目錄以外的文件中,然後將它包含到我需要的任何應用程序中。這使它更安全,避免意外地暴露給Web,並允許多個應用程序使用相同的設置更改該文件將保持所有應用程序數據庫設置保持最新。 –

回答

3

它可以通過多種方式完成,但常見的是將其放入設置文件中,並將該文件保留在webroot之外,以便有關數據庫密碼的信息不會意外泄漏到Web中。

5

理想情況下,你應該把它放在一個配置文件中,它可以像PHP數組一樣簡單。

例如:db_config.php

$db_config = array(
    'host' => 'localhost', 
    'user' => 'username', 
    'password' => 'qwerty' 
); 

您應該然後把這個文件文檔根目錄下最大的安全性之外。這樣,如果您的虛擬主機失敗並開始將PHP文件作爲文本文件提供(發生),則無人可以獲取您的數據庫憑據。

+0

嗨,謝謝你的回答。這是否會像全球一樣實施,否則會出現其他問題。 –

+0

@DaryllSantos您將不得不包含該文件,並在需要時包含該文件。 – xbonez

1

有很多方法做它,但我通過定義常量這樣來做:

Create a config/db.php 

<?php 
define('DB_INFO','mysql:host=localhost;dbname=test'); 
define('DB_USER','root'); 
define('DB_PASS',''); 
1

對於PostgreSQL,我真的很喜歡用pg_service.conf。它允許我將所有連接特定設置(主機名,數據庫名稱,用戶名,密碼等)放入~/.pg_service.conf/etc/postgresql-common/pg_service.conf並給它們通用名稱(服務名稱)。

現在,任何想要連接到數據庫的程序(Perl,PHP等)都可以簡單地指定"service=name"作爲它們的連接字符串 - 很好,乾淨,安全且易於維護。

據我所知,MySQL有類似的機制~/my.cnf/etc/my.cnf文件 - 你可能想看看。

相關問題