php - Zend 框架 2 'quote_identifiers' => false

标签 php mysql zend-framework2

所以当我遇到以下问题时,我正在计划我的应用程序: 我希望能够使用 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/

相关文章:

php - 无法检测我是否可以通过 pdo 连接到 mysql

php - 如何在 CakePHP 中检索整数列的整数值?

zend-framework2 - ZF2 - get 无法获取或创建 getAlbumTable 的实例

php - ZF2 - Module.php 中请求的模拟服务

php - 通过插件管理器的惰性服务

php - 您可以使用 PHP 的内置 Curl 函数设置要下载的最大文件大小吗?

php - new mysqli()使用函数时重置为null

PHP登录..有更好的方法吗?

MySQL - 选择没有添加条件的相关记录的记录

mysql - 将 SQL 查询转换为 Laravel?