如何在公共场合使用JFactory :: getDBO()?

时间:2011-07-06 04:56:44

标签: joomla joomla-dbo

我在组件中创建了新的 php 文件。我希望连接到 Joomla 数据库,但连接未知。错误消息如下:

Fatal error: Class 'JFactory' not found in D:\www\Joomla1.5\components\com_hello\views\hello\tmpl\index.php on line 13

如何在公共场合使用JFactory::getDBO()

2 个答案:

答案 0 :(得分:0)

为什么要在tmpl中获取数据库对象?数据库对象只能在您的控制器或模型中使用,永远不会在您的视图或tmpl中使用。 Tmpl应包含非常少的逻辑代码,主要是HTML。

我们的想法是通过调用模型中的函数来获取所需信息。然后,您可以通过引用将此数据传递给您回显它的tmpl。

<强> [编辑]

$db = JFactory::getDBO();
$db->setQuery('INSERT INTO #__table (col1, col2) VALUES (val1, val2)');
$result = $db->query();
if ($result === null) {
  JError::raiseWarning(100, $db->getErrorMsg());
}

答案 1 :(得分:0)

嗨,在我的情况下$result === null没有用,但是!$ result - 运作良好

$db = JFactory::getDBO();
$db->setQuery('INSERT INTO #__table (col1, col2) VALUES (val1, val2)');
$result = $db->query();
if (!$result) {
  JError::raiseWarning(100, $db->getErrorMsg());
}