Php Zend Framework 2:谓词\In,MSSQL列名中有空格

Php Zend Framework 2:谓词\In,MSSQL列名中有空格,php,sql-server-2008,zend-framework2,predicate,Php,Sql Server 2008,Zend Framework2,Predicate,我正在尝试使用ZF2和MSSQL2008使以下谓词工作 $select = new Select(); $select -> from("MyTable"); $predicateIn = new Predicate\In('Bad Name', array( "A", "B", "C" )); $select -> where(array($predicateIn)); $resultSet = $this -> selectWith($select); 这是我得到的错

我正在尝试使用ZF2和MSSQL2008使以下谓词工作

$select = new Select();
$select -> from("MyTable");

$predicateIn = new Predicate\In('Bad Name', array(
"A",
"B",
"C"
));

$select -> where(array($predicateIn));
$resultSet = $this -> selectWith($select);
这是我得到的错误:

[Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near 'Bad'
打印生成的语句会显示以下内容,但无法找到解决方法

SELECT "MyTable".* FROM "MyTable" WHERE "Bad" "Name" IN ('A', 'B', 'C') 
任何额外的引号都会被转义,使用[Bad Name]会导致相同的错误。
我被难住了

我最后做了以下工作,效果很好:

$select = new Select();
$select -> from("MyTable")    
$platform = $this->adapter->getPlatform();
$filterList = array("A","B","C")

$predicateIn = $platform->quoteIdentifierChain(array('MyTable','Bad Name'));
$predicateIn .= " in (";
$predicateIn .= $platform->quoteValueList($filterList);
$predicateIn .= ")";

$select -> where(array($predicateIn));
$resultSet = $this -> selectWith($select);

不过,我仍然希望谓词\In()能够正常工作。

我最后做了以下工作,效果很好:

$select = new Select();
$select -> from("MyTable")    
$platform = $this->adapter->getPlatform();
$filterList = array("A","B","C")

$predicateIn = $platform->quoteIdentifierChain(array('MyTable','Bad Name'));
$predicateIn .= " in (";
$predicateIn .= $platform->quoteValueList($filterList);
$predicateIn .= ")";

$select -> where(array($predicateIn));
$resultSet = $this -> selectWith($select);
不过,我仍然希望谓词\In()能够正常工作