Php Zend Framework 2对Oracle的查询格式不正确
我猜Zend用来构建sql语句的方法不适用于Oracle 我正在本地Windows PC中使用Oracle。 我的PHP已使用oci8扩展在Oracle上正常工作,我配置了以下链接: 我正在尝试将ZF2与Oracle连接。我正在使用Zend网站上的教程代码: 这段代码与mySQL完美结合。我正在将数据库配置改为使用Oracle 以下是我的配置:Php Zend Framework 2对Oracle的查询格式不正确,php,oracle,zend-framework2,Php,Oracle,Zend Framework2,我猜Zend用来构建sql语句的方法不适用于Oracle 我正在本地Windows PC中使用Oracle。 我的PHP已使用oci8扩展在Oracle上正常工作,我配置了以下链接: 我正在尝试将ZF2与Oracle连接。我正在使用Zend网站上的教程代码: 这段代码与mySQL完美结合。我正在将数据库配置改为使用Oracle 以下是我的配置: global.php 数组( )) ?> php(这项工作是因为我创建了一个在Oracle上具有权限的用户“测试”,我使用php和SQL脚本测
- global.php
- php(这项工作是因为我创建了一个在Oracle上具有权限的用户“测试”,我使用php和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正常工作
请帮帮我!谢谢你这里也有同样的问题:
解决方案:quote_标识符==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)
),
这里也有同样的问题:
解决方案:quote_标识符==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)
),
您是否尝试过将表名设置为大写?似乎在快速的谷歌搜索中出现过几次。您好,我尝试过。我认为问题在于Oracle没有收到双引号,但Zend build语句有这些引号。@AydinHassan:您好,您是对的。将所有表名和字段名更改为大写将使代码正常工作!谢谢尝试将表名设置为大写?似乎在快速的谷歌搜索中出现过几次。您好,我尝试过。我认为问题在于Oracle没有收到双引号,但Zend build语句有这些引号。@AydinHassan:您好,您好。将所有表名和字段名更改为大写将使代码正常工作!谢谢
'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)
),