Joomla扩展更新-将列添加到数据库表中


Joomla extension update - add column to database table

我已经阅读了Joomla文档中关于在扩展更新时运行SQL文件的内容,但问题是我们的扩展的前一版本没有SQL文件,因此无法使用此方法。

我确信在installscript.php中运行SQL命令是可以完成的,所以我尝试将查询添加到更新函数中,如下所示:

function update( $parent ) {
    echo '<p>' . JText::_('MOD_SHOUTBOX_UPDATE') . $this->release . '</p>';
    $db = JFactory::getDBO();
    $sql = "ALTER TABLE #__shoutbox ADD COLUMN user_id int(11) NOT NULL DEFAULT '0'";
    $db->setQuery($sql);
}

如果该查询是通过PHPMyAdmin添加的,并且我也打开了系统调试,但该查询没有出现在列表中,那么它可以正常工作。

有人知道我哪里错了吗?

如果确定调用了update函数,那么它不起作用的唯一原因是缺少query函数。

添加此行

$result = $db->query();

之后

$db->setQuery($sql);

希望这会有所帮助。