我的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中的关联数组中?
值得这样做吗?
答案 0 :(得分:1)
postgresql没有存储过程,但你可以编写一个基本相同的函数。我更喜欢将复杂的查询放入函数中。这样,您就可以在数据库端进行修复和性能改进,而不必每次都推出新的PHP代码。
这是一个演示如何创建pg函数并从PHP调用它的资源: http://pgedit.com/resource/php/pgfuncall