试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法

Posted

技术标签:

【中文标题】试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法【英文标题】:Trying to Find the Best way to pull DB item in Joomla 2.5 Component 【发布时间】:2013-10-30 10:45:02 【问题描述】:

我有一个数据库,它有 2 列 idtitle. 当用户在Joomla 2.5 组件的表单(管理视图)?

当我在这里查看文档时:

http://docs.joomla.org/Selecting_data_using_JDatabase

我发现通过使用 Joomla 的 API,我可以使用速记来创建此连接。我试过了:

$userSubmittedIDValue = $_GET["userSubmittedIDValue"];

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

$query
->select($db->quoteName(array('title')))
->from($db->quoteName('#__mycomponent_table'))
->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))

$results = $db->loadObjectList();

不幸的是,这会产生以下错误:

Parse error: syntax error, unexpected T_VARIABLE

然后错误指向$results = $db->loadObjectList();

我只需要提取该值并将其应用于 php 变量,以便我可以根据需要使用它。有什么想法吗?


好的,感谢第一个答案,我意识到我错过了一个分号。我现在遇到的麻烦仍然是使用foreach 从数组中提取值。我尝试添加以下内容:

foreach (array($results) as $userSubmittedIDValue) 

echo $results;


但这只是打印单词Array。我快接近了,但仍有一些问题。

【问题讨论】:

【参考方案1】:

您收到该错误是因为您在查询后缺少分号。

所以,改变这个:

->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))

到这里:

->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'));

只需注意末尾的;

完成后,您可以使用foreach 循环来显示您的结果。

所以你最终要使用的代码是这样的:

$db = JFactory::getDBO();
$query = $db->getQuery(true);

$query->select('*')
->from('#__mycomponent_table')
->where($db->quoteName('id') . ' = '. $db->quote($userSubmittedIDValue));

$db->setQuery($query);    
$rows = $db->loadObjectList();

foreach ($rows as $row) 
    echo $row->title;

我之前完全忘了提到,您还必须删除查询中 $userSubmittedIDValue 周围的单引号,如我上面的代码所示。 希望这会有所帮助

【讨论】:

这绝对是出现错误的原因,谢谢!我在有关使用foreach 的问题中添加了一些信息,您认为您可以评论我做错了什么,以便我们可以结束这个问题吗? 是的!做到了。非常感谢最后一次更新,它为我清除了一切。

以上是关于试图找到在 Joomla 2.5 组件中提取数据库项目的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

如何对 Joomla 2.5 组件进行单元测试

在 joomla 2.5 的一页上输出两个组件,

如何自定义 Joomla 2.5 联系人组件?

Joomla 2.5 - 组件开发 - 使用表单

Joomla 2.5 组件实现

具有数据库访问权限的组件 joomla 2.5