2017-07-28 67 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();