2017-07-28 53 views
1

我想使用Drupal的sql命令來更新表,但列名使用空格。例如,其中一列被命名爲「階段1」。 Drupal傳遞命令就好像名稱是「Phase1」一樣,我無法弄清楚爲什麼。
我在Drupal 8上,並且正在使用postgresql。Drupal 8 SQL語句與列名空間

下面是部分代碼:

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

我認爲如果你使用轉義引號命名「/」階段1 /「」,它應該可以工作。至少它在PGAdmin中有效,如果列名中有空格。 – Joe

回答

0

在Postgres裏,你需要給你雙引號,當名稱包含空格:

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

那麼試試這個:

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