【问题标题】:Zend Framework 2 query to Oracle in incorrect formatZend Framework 2 对 Oracle 的查询格式不正确
【发布时间】:2013-03-26 08:35:01
【问题描述】:

我猜 Zend 用来构建 sql 语句的方式不适用于 Oracle。

我在本地 Windows PC 中使用 Oracle。 我的 PHP 已经可以在带有 oci8 扩展的 Oracle 上正常工作,我按照以下链接进行了配置:

http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html

我正在尝试将 ZF2 与 Oracle 连接。我正在使用 Zend 网站上的教程代码:

http://zf2.readthedocs.org/en/latest/index.html#userguide

此代码与 mySQL 完美配合。我正在更改数据库配置以使用 Oracle。

下面是我的配置:

  • global.php

返回数组( 'db' => 数组(

    'driver'         => 'Oci8',
    'host'         => 'localhost/orcl',
),

'service_manager' => array(
    'factories' => array(
        'Zend\Db\Adapter\Adapter'
                => 'Zend\Db\Adapter\AdapterServiceFactory',
    ),
), 

);

?>

  • local.php(这项工作是因为我创建了一个具有 Oracle 权限的用户“测试”,我使用 PHP 和 SQL 脚本测试了这个用户)

返回数组(

'db' => array(
  'username' => 'test',
  'password' => 'test',
), 

);

配置后,我尝试浏览 url,出现错误说“表或视图不存在”。这是Oracle错误,表示Zend连接到Oracle,但是SQL语句有问题。

经过一些调试,我看到 sql 语句是:

SELECT "album".* FROM "album"

这是错误的,因为 Oracle 不想接收双引号。

我在文件 /Zend/Db/Adapter/Driver/Oci8/Statement.php 中尝试了一些硬代码,函数 setSql 第 112 行,更改为:

public function setSql($sql)
    {
        $this->sql = $sql;
        $this->sql = "SELECT album.* FROM album";
        return $this;
    }

(删除查询中的双引号)

成功了!!!

我认为还有一些其他配置,所以让 Zend 正常工作。

请帮帮我!谢谢

【问题讨论】:

  • 您是否尝试过将表名设置为大写?似乎从快速谷歌上出现了几次。
  • 嗨,我试过了。我认为问题在于Oracle不接收双引号,但Zend构建语句有这些。
  • @AydinHassan:嗨,你是对的。将所有表名和字段名更改为大写将使代码正常工作!谢谢

标签: php oracle zend-framework2


【解决方案1】:

同样的问题在这里:ZF2 IBM

解决方案:quote_identifiers == false:

   'db' => array(
    'driver' => $dbParams['driver'],
    'connection_string' => $dbParams['database'],
    'username' => $dbParams['username'],
    'password' => $dbParams['password'],
    'character_set' => $dbParams['character_set'],
    'platform_options' => array('quote_identifiers' => false)      
),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多