我的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