連結資料庫是我們程式開發的第一步,以下我們來看看Dreamweaver中資料庫路徑的使用技巧。
一、不建議使用Server.Mappath(相對文檔路徑位址的資料庫文件)
雖然具有平台移植性,但對於不同層次,不同深度下的引用該資料庫的文件,將無法完整地保證資料庫路徑的正確性。
舉個例子:
1、資料庫檔案cnbruce.mdb,所在資料夾database(可http存取)
2、DW自動產生的連線資料庫檔案conn.asp,所在資料夾Connections
3、如果在DW中測試連線路徑成功,則必須輸入位址為Server.Mappath("../database/cnbruce.mdb")
但隨後引用該資料庫連線的檔案必須保存在某資料夾中,該資料夾和database是同等的
即:
- database
- cnbruce. mdb
- Connections
- conn.asp
- 某資料夾
- x1.asp
這種結構才能使用正常。但這必須要求網站中,所有引用了連接資料庫檔案的文件,必須存放在網站的一級目錄下。顯然這是不合理的,例如這樣的結構。
- x2.asp
- database
- cnbruce.mdb
- Connections
- conn.asp
- 某資料夾
- 某子資料夾
- x3.asp
則x2.asp和x3.asp皆無法正常顯示。
原理分析:無論conn.asp放在哪裡,無論conn.asp的內容如何,最後都是取決於引用了conn.asp的檔案的檔案位置和資料庫的位置關係。
解決方法:在conn.asp中進行判斷當前路徑,根據不同級別值給出不同連結路徑…對於初學者來說,麻煩。
二、不建議使用Server.Mappath(相對根目錄路徑的資料庫檔案)
使用此方法,首先需要將IIS預設站點調整到目前DW站點所在資料夾(XP系統),或建立一個站點指向該資料夾( 2K等系統)。
反正一句話,就是當你輸入http://localhost/時,顯示的內容已不是預設的IIS首頁,而是你所設定的DW網站資料夾中的預設首頁文件。
那麼在設定了該IIS站點之後
1、資料庫檔案cnbruce.mdb,所在資料夾database(可http存取)
2、DW自動產生的連接資料庫檔案conn.asp,所在資料夾Connections
3、如果在DW中測試連接路徑成功,則輸入位址為Server.Mappath("/database/cnbruce.mdb")
/database/cnbruce.mdb 此方法就是相對根目錄,高屋建瓴式的進行資料庫路徑的取得,無論哪個層次的,哪個目錄下的站點文件均能正常顯示。
但依然不推薦!原因如下:
在本地你可以自行修改IIS的站點,當上傳到伺服器或虛擬主機時,麻煩就來了。
1.如果你的虛擬主機服務商技術不過關,當在解析你網站根目錄的時,不是指向到你的網站資料夾,而是指向伺服器系統磁碟下的wwwroot資料夾。於是路徑肯定錯誤。
2.如果你需要上傳的並不是你的網站根目錄,很顯然,路徑也一定會發生解析錯誤。
所以,不推薦!那麼,該怎麼辦?
三、推薦使用Server.Mappath(本地絕對物理路徑的資料庫檔案)
很簡單,這個資料庫在本地你總會知道它所在的位置吧。在DW中建立時就直接使用該絕對實體路徑位址。
OK,來上傳了。當然不可能那麼巧:上傳到伺服器上的資料庫實體路徑位址和本地資料庫實體路徑位址是一樣的
所以,現在只需要取得上傳到伺服器空間上的資料庫文件,在伺服器上是處於什麼實體位址就行了。
怎麼取得?
1、建立一個path.asp文件,內容很簡單
2、該文件和資料庫文件cnbruce.mdb,共一資料夾,捆綁式一同上傳。
3.在URL網址列查看path.asp,得到cnbruce.mdb在伺服器上的實體位址,拷貝路徑。
4.將本地的conn.asp中的實體路徑,替換後再上傳。一切OK!
特點:
1、雖然平台移植不很強,但全面支援所有站點中文件連接,況且也就是本地和伺服器間兩者間的移植。
2、防止%5c暴庫間接取得資料庫位址。
3.現在越來越多的空間建議將資料庫檔案放放到非Web存取目錄中(當然具體的路徑獲得又是另外一種方法了),這就必須要求用戶使用物理路徑了。
所以,我的觀點是:
Dreamweaver MX 動態建站資料庫路徑的使用方法:本地使用實體位址,上傳伺服器仍然使用實體位址。