检查 Joomla 中是否存在列 table

Check if a column exists in Joomla table

我有一个包含 idname 列的 table。我想知道是否存在另一个新列filters(当然不存在)。

这就是我正在做的

$db = JFactory::getDBO();
$query = "SHOW COLUMNS FROM `#__facets` LIKE 'filters'";
$db->setQuery($query);
$res = $db->query();

如果我打印 $res 它显示 resource(675) of type (mysql result) 而我期望 NULL 因为列不存在。

如果我尝试使用 name(该列存在):

$db = JFactory::getDBO();
$query = "SHOW COLUMNS FROM `#__facets` LIKE 'name'";
$db->setQuery($query);
$res= $db->query();

它returns也resource(234) of type (mysql result)

如何控制列是否存在?查询正常,因为它适用于 MySQL Workbench

PS:我使用的是 Joomla 1.5,所以我不能使用 getTableColumns()

问题出在 $res= $db->query(); 行。

为了获得想要的 NULL,我必须 loadResult() 而不是 query()。所以正确的代码是:

$db = JFactory::getDBO();
$query = "SHOW COLUMNS FROM `#__facets` LIKE 'filters'";
$db->setQuery($query);
$res = $db->loadResult();