2010-04-14 49 views
0
$extension = 「SUBSTRING_INDEX(domain_name, ‘.’, -1)」; 
$this->db->order_by($extension, 「asc」); 

它說: 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第44行的'asc LIMIT 50'附近使用正確的語法。使用CodeIgniter命令按域名擴展名Active Record類

但是,當我沒有使用$ this-> db-> order_by Active Record Class 例如這一個: $ this-> db-> query(「SELECT * FROM domain ORDER BY SUBSTRING_INDEX(domain_name,'。',-1)」);

任何人都請幫助我。謝謝。

回答

1

我相信你需要擴展數據庫活動記錄庫這樣的:http://codeigniter.com/wiki/Extending_Database_Drivers/

添加類似$逃生另一種說法= null來的ORDER_BY,並用它來防止_protect_identifiers在你的函數運行。這將允許您使用非轉義順序,方式與選擇和現在可以使用的位置相同。

0

從: $ extension =「SUBSTRING_INDEX(domain_name,'。',-1)」; $ this-> db-> order_by($ extension,「asc」);

結果: SUBSTRING_INDEX(域名,`'`.`'`,`-1)`

我編輯: 系統/數據庫/驅動程序/ MySQL的/ mysql_driver.php 改變: VAR $ _escape_char ='`'; 至 var $ _escape_char ='';