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

use*_*023 1 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();
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢.

Gau*_*rav 5

您可以使用

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