鏈接數據庫是我們程序開發的第一步,下面我們來看看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 動態建站數據庫路徑的使用方法:本地使用物理地址,上傳服務器依然使用物理地址。