2014-04-07 163 views
0

,所以我規劃我的應用程序時,我遇到了以下問題: 我希望能夠讓使用Zend Db的選擇這個查詢:Zend框架2「quote_identifiers」 =>假

選擇COLUMN_NAME AS COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '品牌' AND TABLE_SCHEMA = '產物'

,從表中選擇的colums。問題是,Zend的產生:

選擇COLUMN_NAME AS COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '品牌' AND TABLE_SCHEMA =上INFORMATION_SCHEMA.COLUMS '產品'

與 「``」(引號)是產生「沒有選擇數據庫」的SQL錯誤。 我試着在我的配置數組中插入「'platform_options'=> array('quote_identifiers'=> false)」,但沒有任何反應。 用於生成的代碼是:

$sql = new Sql($this->adapter); 
    $select = $sql->select(); 
    $select->columns(array('COLUMN_NAME'),false); 
    $select->from('INFORMATION_SCHEMA.COLUMNS'); 
    $select->where(array('TABLE_NAME' => $table,'TABLE_SCHEMA' => $database)); 
    $statement = $sql->prepareStatementForSqlObject($select); 
    var_dump($sql->getSqlStringForSqlObject($select)); 
+1

不是答案到引用標識符的問題,但根據您在這裏查詢的內容,您可能需要查看'Zend \ Db \ Metadata' - > http://framework.zend.com/manual/2.3/en/modules/ zend.db.metadata.html – Crisp

+0

@Crisp我會檢查這個解決方案並回復一個響應。然而問題仍然存在,你可以在沒有元數據幫助的情況下解決報價問題嗎?10q – Susy11

+0

@Crisp元數據的使用幫助我解決了這個問題。 – Susy11

回答

0

返回與您在這個問題上,我設法找到與模式名前綴表的答案。 Here你可以找到所描述的問題,解決方案似乎是Zend TableIdentifier。因此,爲了得出一個小結論,信息模式/表/列的解決方案是元數據,並且對於模式名稱的前綴是表格標識符。如果您無法刪除引號,只使用其中一種解決方案