2012-02-03 67 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); 

,它会工作。干杯!