0

Sazans ライブラリに基づいて多言語サポートを実装しようとしていますが、クエリが機能していないようです。

ライブラリ: 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 を使用して、データベースで関数設定クエリ (プロジェクト ページにあるもの) を実行してみました。私がそれを追加していたとき、それはエラーを返さず、関数の追加に成功したことを「教えてくれませんでした」。

どうすればいいですか?

4

1 に答える 1

1

問題は関数ではなく、CI の Active Record クラスに関連しています。CI AR クラスは、 を使用して選択したフィールドを自動的にエスケープします$this->db ->select(...)。したがって、保存された関数を使用するには、AR の select 関数の 2 番目のパラメーターを false に設定して、自動エスケープをオフにする必要があります。

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

そして、それはうまくいきます。乾杯!

于 2012-03-30T22:05:57.697 に答える