Joomla:如何检测表中的列是否存在,以及是否将其添加到表中

时间:2014-09-25 18:23:07

标签: mysql joomla

我们的Joomla插件现在需要一个新列。

因此,对于将安装新插件版本的现有安装(旧版本),我们需要检测此列的缺失情况" linkimageflag"在数据库上,然后添加它。

我尝试了几个代码段,但它始终显示此错误:

" 1054未知栏' linkimageflag'在'字段列表' SQL = SELECT linkimageflag FROM nk6px_test_plugin"

这是我尝试的最后一个代码:

$querycol = "SELECT linkimageflag FROM #__test_plugin";
$database->setQuery($querycol);
$colresult = $database->query();

// $ rows = $ database-> loadObjectList();

if (!$colresult) {
    $querycol = "ALTER TABLE #__test_plugin ADD linkimageflag varchar(10) NOT NULL";
    $database->setQuery($querycol);
    $database->query();
}

执行此类操作的正确代码是什么?

谢谢。

1 个答案:

答案 0 :(得分:5)

您可以使用

$db = JFactory::getDBO();
$columns = $db->getTableColumns('#__your_table_name');
if(!isset($columns['columnName'])){
   // run your query to add column
}