2016-03-19 8 views
2

行を追加/更新するときにPropelが予約語である列名を自動的にエスケープする方法はありますか?Propel構文エラーテーブル名または列名に予約済みキーワードを使用した場合に受信

は、今、私が「注文」という名前の列を持っていると私は

$row->setOrder(1)->save(); 

私は構文エラーを取得し、「PHPの致命的なエラーを使用して更新しようとすると:メッセージでキャッチされない例外 『PDOExceptionを』「SQLSTATE [42601] :構文エラー:7エラー:「順序」またはその近くの構文エラー\ nLINE 1:UPDATE条件SET order = $ 1 WHERE terms.id = $ 2 \ n^'

答えて

3

この回答はhttp://propelorm.org/documentation/reference/schema.html#database-elementにあります。

schema12.xmlの<database>タグにパラメータidentifierQuoting="true"を追加すると、この問題が修正されました。私はあなたも<table>タグに追加して、それを1つのテーブルに限定することができると信じています。なぜこれがデフォルト設定にならないのか分かりません。

+0

すべてのプログラミング言語に共通のルールであると推測できます。識別子として予約語を使用しないでください。o) – Abelisto