首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2 - \Zend\Db\Adapter\Platform::getQuoteIdentifierSymbol()

问ZF2 - \Zend\Db\Adapter\Platform::getQuoteIdentifierSymbol()
EN

Stack Overflow用户
提问于 2013-04-04 22:05:40
回答 1查看 891关注 0票数 5

代码如下,我的目标是使用Pdo_mysql:

代码语言:javascript
复制
use \Zend\Db\Adapter\Adapter;
use \Zend\Db\Sql\Sql;
use \Zend\Db\Sql\Expression;    

$params = array(
    'driver'   => "Pdo_mysql",
    'host'     => &$this->Registry->config[ 'sql' ][ 'host' ],
    'username' => &$this->Registry->config[ 'sql' ][ 'user' ],
    'password' => &$this->Registry->config[ 'sql' ][ 'passwd' ],
    'dbname'   => &$this->Registry->config[ 'sql' ][ 'dbname' ]
);
$this->adapter  = new \Zend\Db\Adapter\Adapter( $params );
$this->platform = $this->adapter->getPlatform();
$this->sql      = new Sql( $this->adapter );

当我用以下代码检查标识符引号时:

代码语言:javascript
复制
print $this->platform->getQuoteIdentifierSymbol();    // Output: "

如您所见,双引号是符号。这当然会使我的所有MySQL查询无效,因为它用双引号(")而不是前引号(`)将所有标识符名(表、列等)引起来。

那么,为什么PDO-MySQL驱动程序使用Sql92符号呢?如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2013-04-09 14:36:31

此问题的唯一解决方案是创建新的\Zend\Db\Platform\Mysql对象,并在启动连接时将其作为第二个参数传递给Adapter类。这个问题暗示了自动完成它的方式。为什么初始化MySQL适配器没有将MySQL平台附加到它上,这是我不明白的-相反,它附加了SQL92平台。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15813544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档