检查 Joomla 中是否存在列 table
Check if a column exists in Joomla table
我有一个包含 id
和 name
列的 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();
我有一个包含 id
和 name
列的 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();