2009-07-24 63 views
0

我之前詢問過similar question,並且獲得了一些不錯的代碼,但我關心的是其中一條評論。我問了如何在共享主機上用php在sql文件中創建和導入mysql數據庫。其中一位評論者說,有些主機可能不允許我使用php。在其他地方挖了一下後,有人建議我可以從主機控制面板創建數據庫,但通過PHP腳本創建表執行SQL查詢這樣導入:當主機不允許從腳本創建數據庫時創建/導入mysql數據庫(php)

  mysql_query("CREATE TABLE `TABLE NAME HERE` (
     `id` int(25) NOT NULL default '0', 
     `CLMN NAME HERE` varchar(250) collate latin1_general_ci default NULL, 
     `CLMN NAME HERE` int(10) default NULL, 
     PRIMARY KEY (`id`) 
     ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;"); 

     mysql_query("INSERT INTO `TABLE NAME HERE` VALUES ('VALUE HERE', 'VALUE HERE', 'VALUE HERE');"); 
莫非

上,任何人都對此有何評論?如果給定的主機會限制我可以用php中的數據庫做什麼,我該如何實現我想要做的事情? (我不確定是否爲此創建新問題是合適的,但我認爲,因爲以前的問題有很好的例子,如果主機不阻止所有事情,我會創建單獨的問題,如果做同樣的事情主機更具有限制性)。

回答

1

共享主機並且經常不允許您創建數據庫,但使用其控制面板除外。這並不罕見,而且這樣做的原因很充分。

如果你不能從phpmyadmin或其他任何管理工具,而不是他們的控制面板,你將無法在PHP中做到這一點。

在這種情況下,您唯一的解決方案是首先使用主機的控制面板創建數據庫,然後編輯備份文件並在執行CREATE DATABASE語句之前註釋掉它。

0

如果主機不允許您從PHP代碼執行CREATE TABLE語句,那麼我會感到驚訝。

最可能引用的是CREATE DATABASE語句上的一個塊。通常情況下,您已經分配了數據庫名稱,因此您絕不會在共享主機上執行CREATE DATABASE語句。

+0

真的嗎?多個數據庫主機呢?我也看到一個只允許一個數據庫但它不是從我的用戶名自動創建的,我必須在控制面板中手動創建它。 – Phil 2009-07-24 15:06:05