【问题标题】:How to use JFactory::getDBO() in public?如何在公共场合使用 JFactory::getDBO()?
【发布时间】:2011-07-06 04:56:44
【问题描述】:

我在组件中创建了新的 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()

【问题讨论】:

    标签: joomla joomla-dbo


    【解决方案1】:

    为什么要在 tmpl 中获取数据库对象? DB 对象只能在您的控制器或模型中使用,而不应在您的视图或 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());
    }
    

    【讨论】:

    • 你能给我简单的代码插入数据到 joomla 中的数据库吗?在组件中
    【解决方案2】:

    您好,在我的情况下 $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());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多