No.305


【CakePHP3】識別子をクオートさせる

データベースの予約語を使いたい!

 CakePHP3ではCakePHP2までとは違い、デフォルトでは識別子(identifier)を引用符(quote)で囲わなくなった。

識別子のクォートはデフォルトで無効

 パフォーマンスやSQL構文作成時にいろいろ問題があった、とのことだ。まあ、出力されたSQLを見たことのある人なら納得できる理由だろう。

 基本的にはlinesorderなどの予約語を使わなければ済むことだけど、システムの移植などでどうしても使わざるを得ないときがある。

 そんなときは、データーソースのquoteIdentifierstrueに変更すればOK。

// config/app.php
'Datasources' => [
  'default' => [
    ...
    'quoteIdentifiers' => true
  ]
],