SQL脚本不会在Joomla中的组件安装中插入值

时间:2014-04-16 13:19:29

标签: mysql joomla joomla2.5 joomla-component

我正在为Joomla 2.5创建一个Joomla组件,但我在安装脚本方面遇到了麻烦。在install.mysql.utf8.sql文件中,我有以下内容:

DROP TABLE IF EXISTS `#__products`;

CREATE TABLE `#__products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `description` varchar(128) NOT NULL,
  `price` int(11) NOT NULL,
  `published` tinyint(1) NOT NULL DEFAULT 1,
  `url` varchar(255),
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

# Insert default values
INSERT INTO `#__products` (`name`, `description`, `price`, `url`) VALUES
('product1', 'description1', 1000, 'image.png'),
('product2', 'description2', 2000, 'image.png'),
('product3', 'description3', 4000, 'image.png');

当我安装组件时,Joomla说这是成功的。但是,当我检查数据库时,即使创建了表,也没有将默认值添加到产品表中。如果我直接在mysql中运行INSERT它可以正常工作(当然必须更改表的名称)。

如果我在SQL脚本中包含拼写错误,我会收到错误,所以我不知道它是如何解决我的MySQL语法问题的。有没有人有任何关于这里可能发生的事情的线索,以及如何解决它?

感谢。

1 个答案:

答案 0 :(得分:2)

我终于开始工作了。我唯一做的就是删除SQL文件顶部的DROP TABLE IF EXISTS,并将CREATE - 语句更改为以CREATE TABLE IF NOT EXISTS开头。就是这样。

我不确定为什么会这样,但可能是插入不起作用,因为在执行插入时没有正确删除/创建表。希望这会帮助别人!