【发布时间】:2014-04-07 14:38:19
【问题描述】:
所以当我遇到以下问题时,我正在计划我的应用程序: 我希望能够使用 Zend Db Select 进行此查询:
选择COLUMN_NAME AS COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
在哪里TABLE_NAME = '品牌'
AND TABLE_SCHEMA = '产品'
从表中选择列。问题是 Zend 生成:
选择COLUMN_NAME AS COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
其中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));
【问题讨论】:
-
不是引用标识符问题的答案,但根据您在此处查询的内容,您可能需要查看
Zend\Db\Metadata-> framework.zend.com/manual/2.3/en/modules/zend.db.metadata.html -
@Crisp 我将检查此解决方案并返回回复。但是问题仍然存在,您能否在没有元数据帮助的情况下解决引用问题?10q
-
@Crisp 元数据的使用帮助我解决了问题。
标签: php mysql zend-framework2