2012-02-03 116 views
0

我一直在嘗試基於Sazans庫實現多語言支持,但查詢似乎不適合我。在pyrocms中實現多語言支持

庫:https://github.com/sazan/MultiLang-Library-for-PyroCMS/blob/master/README

我的錯誤:

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 'FROM (`default_navigation_links`) WHERE `navigation_group_id` = '1' ORDER BY `p' at line 2 

SELECT *, translate("navigation", `id`, `"title"`, `"en"`, `title)` AS title FROM (`default_navigation_links`) WHERE `navigation_group_id` = '1' ORDER BY `position` 

的誤差越來越拋出查詢的原因。我相信函數translate沒有定義,這就是它拋出錯誤的原因。

The query: $this->db ->select('*, translate("navigation", id, "title", "'.CURRENT_LANGUAGE.'", title) AS title'); 

我試着通過phpmyadmin在我的數據庫中運行函數設置查詢(在項目頁面找到的)。當我添加它時 - 它沒有返回錯誤,也沒有「告訴我」它成功添加了該函數。

任何想法我該怎麼辦?

回答

1

問題不在於函數,它與CI的Active Record類有關。 CI AR類自動轉義您使用$this->db ->select(...)選擇的字段。因此,要使用我的存儲功能,你必須關閉自動轉義關閉的AR的選擇功能的第二PARAM設置爲false:

$this->db->select('*, translate("navigation", id, "title", "'.CURRENT_LANGUAGE.'", title) AS title', false); 

,它會工作。乾杯!