2010-05-31 150 views
6

我有一個有效的PHP服務器。現在我想使用數據庫(MySQL或類似的東西)。是否有可能從PHP創建數據庫?我可以從PHP創建我自己的數據庫嗎?

我想強調在我的情況下,我沒有任何用戶名和密碼,我可以用它來連接到MySQL服務器。我也沒有控制面板,我可以在現有數據庫中創建數據庫或表格。

新增:

我覺得SQLite是我所需要的。但是,如果我嘗試從PHP創建新的數據庫,我會發現PHP試圖在與我的文件應該位於的目錄不同的目錄中創建文件。然後它報告它無法創建數據庫,我認爲這是因爲它試圖在我沒有寫入權限的目錄中創建。我可以強制PHP在特定目錄中創建SQLite嗎?

+6

沒有密碼,也沒有用戶名和數據庫服務器?要求一個用戶帳戶,然後將其撤銷,我想這會更容易..但是再一次,我從來沒有遇到過這種情況。 :) – LukeN 2010-05-31 13:34:04

+0

您是否安裝了數據庫服務器? (在這種情況下,MySQL) – alternative 2010-05-31 13:37:06

+0

哇!什麼情況。感謝上帝,我從來沒有陷入過這樣的境地.. – User 2010-05-31 13:38:10

回答

10

我假設你火了創建數據庫的SQL查詢想不獲得一個獨立的數據庫服務器上創建一個SQL數據庫。您可以使用SQLite,它是一個在單個文件中創建輕量級數據庫而無需單獨進程的庫。

但是,它不像獨立數據庫服務器那麼高效,所以如果您需要性能,請使用合適的數據庫服務器。對於高性能的網絡應用程序來說這不是一個無理要求。

+2

我想有些人會誇大自己的性能需求,所以我想指出,SQLite最有可能會做得很好,直到你得到真正的*巨大的,同時數百或數千用戶。 – Matchu 2010-05-31 13:41:01

+0

我在使用PHP 4的SQLite時遇到了問題,但不記得是什麼導致了它。確保你至少使用PHP 5的SQLite。另外,SQLite3比SQLite2好得多。 – amphetamachine 2010-05-31 13:41:41

4

Mysql,no。 SqlLite是一種可能性,你只需要在文件系統上寫入權限。 www.sqlite.org/

+0

不要忘了'chown apache:apache'和'chmod 0600'這個數據庫文件。或者'chmod 0666',如果你沒有root權限的話。但是,如果數據庫保存在htdocs目錄中,則會引入下載數據庫的功能。最好將它保存在該樹之外的文件夾中。 – amphetamachine 2010-05-31 13:44:11

1

我想強調的是,在我的 情況下,我沒有任何的用戶名和密碼 ,而我可以用它來 連接到MySQL服務器。我也沒有一個 控制面板,我可以創建一個 數據庫或現有的 數據庫中的表。

這個問題讓我感到困惑,因爲如果你使用的是MySQL,你應該可以使用他們的命令行管理工具創建一個數據庫,用戶名和密碼進行連接。這也是創建數據庫或表的方式。

你是說你沒有權限訪問管理工具嗎?你沒有賬戶?如果是這樣,您需要向有此類訪問權限的人員索要。

-1

通過PHP創建數據庫是可能的,但爲此您需要連接到數據庫,該數據庫需要用戶名/密碼對或某種身份驗證。除非你的數據庫允許匿名登錄或類似的東西,否則這是不可能的。

+1

你不能連接到一些還不存在的東西。 – 2010-05-31 17:53:25

1

一個選項是在htdocs文件夾以外的目錄中設置SQLite數據庫。這是因爲人們無法輸入數據庫文件的名稱並下載整個數據庫,嚴重影響安全性。

如果您非常喜歡,您甚至可以使用PDO在PHP和DBMS之間建立一個抽象層。然後,爲了創建數據庫對象時,你會指定一個DSN specific to SQLite寫是這樣的:

$pdo_obj = new PDO('sqlite:/path/to/my_database.sqlite3'); 

,然後查詢它像使用PDO functions正常PDO對象。

這種方法可以更容易地遷移到使用客戶端 - 服務器DBMS,一旦你可以進行設置;它只是將表結構和數據複製到新數據庫,並將DSN更改爲something appropriate

相關問題