2013-11-21 90 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');