[英]SQL-script does not insert values in component installation in Joomla
我正在为 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 语法有什么问题。 有没有人对这里可能发生的事情有任何线索,以及如何解决它?
谢谢。
我终于让它工作了。 我所做的唯一一件事就是删除 SQL 文件顶部的DROP TABLE IF EXISTS
,并将CREATE
语句更改为以CREATE TABLE IF NOT EXISTS
开头。 就是这样。
我不确定为什么会这样,但可能是插入不起作用,因为在执行插入时没有正确删除/创建表。 希望这会帮助别人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.