MySQL语法问题 - ORDER BY - Joomla PHP

时间:2015-06-29 23:24:52

标签: php mysql joomla

我有一个语法问题,我似乎无法弄清楚。我跟随在这里找到的Joomla文档:

https://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_a_Single_Table

我收到了这个错误:

1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order DESC' at line 3 SQL=SELECT `id`,`image`,`order`,`status` FROM `vsem6_session_1` ORDER BY order DESC 

我的查询是:

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

$query->select($db->quoteName(array('id', 'image', 'order', 'status')));
$query->from($db->quoteName('#__session_' . $id));
$query->order('order DESC');

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

return $results;

如果我拿出订单条款,它的效果很好,但当然结果不是有序的。我搜索高低,无法弄清楚。有人注意到什么?我100%肯定有一个"订单"表中的列。

我试过这个,没有显示任何错误,但仍然没有正确排序。

$query->orderby('order DESC');

2 个答案:

答案 0 :(得分:1)

订单order by中使用的reserved word。因此,为了解决mysql的混乱,您需要将订单的使用标记为具有反向标记的字段名称

答案 1 :(得分:0)

$query->order('order DESC');

这个问题是你没有使用quoteName()。

$query->order($db->quoteName('order') . 'DESC');

即使您说您要更改字段名称,我也会在有人无法更改名称的情况下添加此名称。