【问题标题】:SQL-script does not insert values in component installation in JoomlaSQL 脚本不会在 Joomla 的组件安装中插入值
【发布时间】:2014-05-31 09:35:37
【问题描述】:

我正在为 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 语法有什么问题。有没有人知道这里可能发生了什么以及如何解决它?

谢谢。

【问题讨论】:

    标签: mysql joomla joomla2.5 joomla-component


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      相关资源
      最近更新 更多