我在我的UNIX系統上安裝了SQLite,並計劃從PHP訪問它。但是,數據庫是在我初始化的目錄中創建的,如果腳本在不同的目錄中運行,則會在同一目錄中創建新的數據庫。如何從中央位置存儲和訪問SQLite數據庫?
是否有SQLite(或PHP包裝器)在一個位置創建數據庫的選項,並讓這些數據庫只能通過該目錄之外的名稱訪問?
理想情況下,我希望能夠在任何目錄中執行類似$db=new SQLiteDatabase("db.test");
的操作,並讓它引用相同的數據庫,如果這樣做合理的話。
我在我的UNIX系統上安裝了SQLite,並計劃從PHP訪問它。但是,數據庫是在我初始化的目錄中創建的,如果腳本在不同的目錄中運行,則會在同一目錄中創建新的數據庫。如何從中央位置存儲和訪問SQLite數據庫?
是否有SQLite(或PHP包裝器)在一個位置創建數據庫的選項,並讓這些數據庫只能通過該目錄之外的名稱訪問?
理想情況下,我希望能夠在任何目錄中執行類似$db=new SQLiteDatabase("db.test");
的操作,並讓它引用相同的數據庫,如果這樣做合理的話。
爲了始終使用同一個數據庫(其中,畢竟,只有一個文件),你必須使用絕對路徑。
而不是使用'db.test'
,這是相對到當前目錄的,你必須使用類似'/home/user/development/application/db.test'
。
請注意路徑開始處的/
,這使其成爲絕對路徑。
當然,你來:-)
一個很好的可能性這個適應您的需求,不能把一個完全硬編碼路徑在你的代碼,將是一個使用dirname(__FILE__)
的PHP文件,以獲取包含該文件的目錄的完整絕對路徑,並從那裏建立起來,以獲取數據庫的文件。
您應該將絕對路徑存儲在配置文件的某處,以便在需要時提供該數據。如前所述,您可以使用dirname(__FILE__)
獲取包含PHP腳本的目錄的絕對路徑,以便您可以從此處開始工作。
太好了,謝謝。我有一個單例來處理數據庫實例,我可以堅持絕對路徑,並使用全局變量或其他來選擇數據庫。 – 2010-04-25 02:54:49
不客氣:-) ;;很好:-) – 2010-04-25 10:41:11