2014-09-25 48 views
1

我们的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(); 
} 

这样做的正确代码是什么?

谢谢。

回答

5

您可以使用

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

谢谢,非常完美。 – user2078023 2014-09-26 15:59:30

相关问题