我有一个语法问题,我似乎无法弄清楚。我跟随在这里找到的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');
答案 0 :(得分:1)
订单是order by
中使用的reserved word。因此,为了解决mysql的混乱,您需要将订单的使用标记为具有反向标记的字段名称
答案 1 :(得分:0)
$query->order('order DESC');
这个问题是你没有使用quoteName()。
$query->order($db->quoteName('order') . 'DESC');
即使您说您要更改字段名称,我也会在有人无法更改名称的情况下添加此名称。