所以当我遇到以下问题时,我正在计划我的应用程序: 我希望能够使用 Zend Db Select 进行此查询:
选择COLUMN_NAME
AS COLUMN_NAME
来自 INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME
= '品牌'
AND TABLE_SCHEMA
= '产品'
从表中选择列。问题是 Zend 生成:
选择COLUMN_NAME
AS COLUMN_NAME
来自 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));
最佳答案
回到这个问题,我设法找到了使用架构名称为表添加前缀的答案。 Here您可以找到所描述的问题,解决方案似乎是 Zend TableIdentifier。因此,做一个小结论,信息模式/表/列的解决方案是元数据,而模式名称前缀的解决方案是表标识符。如果您不能删除引号,只需使用这些解决方案之一
关于php - Zend 框架 2 'quote_identifiers' => false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915545/