我有一个包含 id
列和 name
列的表格。我想知道是否存在另一个新列filters
(当然它不存在)。
这就是我正在做的事情
$db = JFactory::getDBO();
$query = "SHOW COLUMNS FROM `#__facets` LIKE 'filters'";
$db->setQuery($query);
$res = $db->query();
如果我打印$res
,当我期待NULL
时,它会显示类型为(mysql结果)的resource(675)
,因为列不存在.
如果我尝试使用name
(该列存在):
$db = JFactory::getDBO();
$query = "SHOW COLUMNS FROM `#__facets` LIKE 'name'";
$db->setQuery($query);
$res= $db->query();
它还返回类型(mysql 结果)的resource(234)
。
如何控制该列是否存在?查询没问题,因为它可以在 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();
关于mysql - 检查 Joomla 表中是否存在列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303602/