存储过程vs PDO php pl/pgsql


stored procedures vs PDO php pl/pgsql

我的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中做相同的存储函数并返回一组许多表,然后将结果提取到php中的关联数组中?

做这件事值得吗?

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

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