2017-07-28 13 views
1

私はDrupalのSQLコマンドを使用してテーブルを更新しようとしていますが、列名はスペースを使用しています。たとえば、列の1つに「Phase 1」という名前が付けられます。 Drupalは、その名前が "Phase1"であるかのようにコマンドを渡します。なぜ、私はその理由を理解できません。
私はDrupal 8におり、私はpostgresqlを使用しています。ここでDrupalの8つのSQL文が列名に空白を含む

コードの一部です:Postgresので

\Drupal::database()->update('table') 
        ->condition('test', $test) 
        ->fields([ 
          "Phase 1" => $phase1, 
        ]) 
      ->execute(); 
+0

フェーズ1/""をエスケープされた引用符で "/"名前にすると動作するはずです。列名にスペースがある場合は、少なくともPGAdminで実行されます。 – Joe

答えて

0

、あなたは名前が空白文字が含まれている場合、あなたに二重引用符が必要になります。

... where "Phase 1" = 1 ... 

ので、この試してみてください。

\Drupal::database()->update('table') 
        ->condition('test', $test) 
        ->fields([ 
          '"Phase 1"' => $phase1, 
        ]) 
      ->execute(); 
関連する問題