Symfony2 / Doctrine2 Oracle光标问题 - php

我们想知道是否有人可以帮助我们查询有关Symfony2 / Doctrine2的信息。

我们将Oracle用作应用程序的数据库,并且已经开始尝试将Symfony 2和Doctrine用于新项目,以期摆脱Zend Framework 1的困扰-但是,我们遇到了一个小问题。大多数数据库交互都涉及调用过程,这些过程返回游标。不幸的是,我们目前在Doctrine中还没有找到一种使用游标的方法,就像使用Zend DB(自定义书面语句,游标和执行类来包装标准oci8功能)一样。

有没有人成功将游标与Doctrine结合使用,如果可以,他们会介意发布一些指针吗?这就是我们在oci8中实现它们的方式。但是,如果没有对连接资源属性的本机访问,我们必须在不扩展/创建一个新类的情况下使用此方法。

为了便于阅读,代码已被省略!

$oc = oci_connect($user,$pw,$tns);

$var = null;
$cur = null;

$stmt = "BEGIN schema.package.procedure(:var_in, :cur_out); END;";
$stid = oci_parse($oc, $stmt);

$cur = oci_new_cursor($oc);

oci_bind_by_name($stid, ':VAR_IN', $var);
oci_bind_by_name($stid, ': CUR_OUT', $cur, -1, OCI_B_CURSOR);

oci_execute($stid);

// Now treat the cursor as a statement resource
oci_execute($cur, OCI_DEFAULT);

oci_fetch_all($cur, $result, null, null, OCI_FETCHSTATEMENT_BY_ROW);

oci_free_statement($stid);
oci_close($oc);

//use $result for processing….
var_dump($result);

非常感谢

参考方案

我在OUT参数中发现了有关Doctrine2支持游标的零信息。

您可以从容器中获取连接资源,但不建议直接使用它。

// assuming you're in a controller
$this->get('database_connection')->getWrappedConnection();

对于Oracle连接,可以使用ZendDB。 Symfony2有一个不错的包装器:

https://packagist.org/packages/espend/zend-db-bundle

https://github.com/Haehnchen/ZendDbBundle

Symfony2:如何在config.yml中读取参数数组 - php

我的parameters.yml文件具有:parameters: title: subtitle: value 我想将value传递给config.yml中的服务my_service: class: the_class arguments: [ %title.subtitle%] //didn't work arguments: [ %title[…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP:将字符串拆分为字母和数字部分的最佳方法 - php

我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…