存储过程vs PDO php pl / pgsql

时间:2013-06-03 15:02:12

标签: php postgresql stored-procedures pdo

我的PHP类中有这个查询:

    $this->query = "SELECT a.x, b.y, c.z FROM aaa a INNER JOIN bbb b ON b.ida = a.ida ";
    $this->query.= "INNER JOIN ccc c ON c.idb = b.idb WHERE a.ida = :ida";
    $this->stmtparam = array(':ida' => $this->ida);
    return parent::fillArray(); // it fills a PDO FETCH_ASSOC array and returns it as JSON

假设这是一个复杂10倍的查询,我在公司信息系统中有很多这样的问题;

我的问题是:是否有可能在postqresql中创建一个存储函数并执行相同操作并返回许多表的SET,然后将结果提取到php中的关联数组中?

值得这样做吗?

1 个答案:

答案 0 :(得分:1)

postgresql没有存储过程,但你可以编写一个基本相同的函数。我更喜欢将复杂的查询放入函数中。这样,您就可以在数据库端进行修复和性能改进,而不必每次都推出新的PHP代码。

这是一个演示如何创建pg函数并从PHP调用它的资源: http://pgedit.com/resource/php/pgfuncall