2013-11-21 92 views
1

我正在創建一個新模塊,但是這次我在創建數據庫表時出錯。另外我對這種安裝文件結構感到困惑。我已閱讀的Joomla文檔,並試圖他們在說什麼:Joomla模塊安裝mySQL

在我的清單我創建了下面的安裝/刪除(SQL)部分:

<?xml version="1.0" encoding="utf-8"?> 
<extension type="module" version="3.1.0" client="site" method="upgrade"> 
    <name>Modulename</name> 
    <author>Jerry Schirrmann</author> 
    <description>A test module</description> 
    <files> 
     <filename>mod_modulename.xml</filename> 
     <filename module="mod_modulename">mod_modulename.php</filename> 
     <filename>index.html</filename> 
     <filename>helper.php</filename> 
     <filename>tmpl/default.php</filename> 
     <filename>tmpl/index.html</filename> 
     <filename>sql/mysql/install.mysql.utf8.sql</filename> 
     <filename>sql/mysql/uninstall.mysql.utf8.sql</filename> 
    </files> 
    <config> 
     <install> 
      <sql> 
       <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file> 
       <file driver="sqlazure" charset="utf8">sql/sqlazure/install.sqlazure.utf8.sql</file> 
      </sql> 
     </install> 

     <uninstall> 
      <sql> 
       <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file> 
       <file driver="sqlazure" charset="utf8">sql/sqlazure/uninstall.sqlazure.utf8.sql</file> 
      </sql> 
     </uninstall> 
    </config> 
</extension> 

,並創建以下文件結構:
mod_xxx /sql/mysql/install.mysql.utf8.sql & mod_xxx/SQL/MySQL的/ install.mysql.utf8.sql

現在,他不給我一個錯誤,而安裝,只是不會產生我的桌子。 我的文件結構是否正確?或者是我的一個SQL文件存在問題?

編輯:
下面是一些MySQL代碼

CREATE TABLE IF NOT EXISTS `#__modulename` (
     `id` int(10) NOT NULL AUTO_INCREMENT, 
     `hello` text NOT NULL, 
     `lang` varchar(25) NOT NULL, 

    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

INSERT INTO `#__modulename` (`hello`, `lang`) VALUES ('Hello World', 'en-GB'); 
INSERT INTO `#__modulename` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES'); 
INSERT INTO `#__modulename` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR'); 

我目前的Joomla是在3.2,我爲3.1.0發展。

+0

您使用的是哪個版本的Joomla?你能否提供你的**。sql **文件中的代碼。即使數據庫表沒有被創建,模塊是否被安裝? – Lodder

+0

我的Joomla目前在3.2,我正在爲3.1.0開發。請參閱編輯SQL – jerry

+0

您是否在''標記中包含了' sql'? – Lodder

回答

4

在XML文件中進一步下跌,你應該有一些與此類似:

<files> 
    <filename module="mod_modulename">mod_modulename.php</filename> 
    <filename>index.html</filename> 
    <folder>tmpl</folder> 
</files> 

請確保您還包括<folder>sql</folder>

至於你的SQL代碼,請嘗試以下只使用1個插入命令。它也告訴它哪個ID分配您忘記在您的代碼中的值:

CREATE TABLE IF NOT EXISTS `#__modulename` (
     `id` int(10) NOT NULL AUTO_INCREMENT, 
     `hello` text NOT NULL, 
     `lang` varchar(25) NOT NULL, 

    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

INSERT INTO `#__modulename` (`id`, `hello`, `lang`) VALUES 
(1, 'Hello World', 'en-GB'), 
(2, 'Hola Mundo', 'es-ES'), 
(3, 'Bonjour tout le monde', 'fr-FR');