我正在为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语法问题的。有没有人有任何关于这里可能发生的事情的线索,以及如何解决它?
感谢。
答案 0 :(得分:2)
我终于开始工作了。我唯一做的就是删除SQL文件顶部的DROP TABLE IF EXISTS
,并将CREATE
- 语句更改为以CREATE TABLE IF NOT EXISTS
开头。就是这样。
我不确定为什么会这样,但可能是插入不起作用,因为在执行插入时没有正确删除/创建表。希望这会帮助别人!