[英]MySQL Syntax Issue - ORDER BY - Joomla PHP
我有一個語法問題,我似乎無法弄清楚。 我正在關注在此處找到的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;
如果我刪除了order子句,效果很好,但是當然結果不是有序的。 我搜索過高和低,無法弄清楚。 有人注意到嗎? 我100%肯定表中有一個“訂單”列。
我嘗試了此操作,它沒有顯示任何錯誤,但是仍然無法正確排序。
$query->orderby('order DESC');
order是保留字,因為它被order by
。 因此,要解決mysql的混亂,您需要將命令的使用標記為帶有反勾號的字段名稱
$query->order('order DESC');
問題是您沒有使用quoteName()。
$query->order($db->quoteName('order') . 'DESC');
即使您說過要更改字段名稱,我還是要添加此名稱,以防有人無法更改名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.