Php Zend\Db\Sql\Select使用函数作为表

Php Zend\Db\Sql\Select使用函数作为表,php,postgresql,zend-framework,Php,Postgresql,Zend Framework,我正在尝试使用Zend\Db\Sql\Select来选择Sql函数的结果,然后连接其他表、排序、分页等。我意识到有一些解决方案涉及到从手写Sql构建语句,但是我有一些排序和分页的帮助器,它们与Select一起工作,我想利用Select API 不管怎样,如果我想做这样的事 $select->fromnew TableIdentifierufn\U user\U client$userId,$clientId,'my\U schema' 。。。它引用了整个函数,包括参数,我得到一个错误:relat

我正在尝试使用Zend\Db\Sql\Select来选择Sql函数的结果,然后连接其他表、排序、分页等。我意识到有一些解决方案涉及到从手写Sql构建语句,但是我有一些排序和分页的帮助器,它们与Select一起工作,我想利用Select API

不管怎样,如果我想做这样的事

$select->fromnew TableIdentifierufn\U user\U client$userId,$clientId,'my\U schema'

。。。它引用了整个函数,包括参数,我得到一个错误:relation\my_schema.ufn\u user\u client3,2\不存在,因为它引用了整个函数。我尝试使用一个字符串而不是TableIdentifier、Zend\Db\Expression等,结果类似。如何在FROM子句中获取这个文本字符串,而不引用整个表达式

下面是一个简单的例子:

<?php

require_once 'vendor/autoload.php';

$config = [
    'driver'   => 'pdo_pgsql',
    'host'     => 'postgresvm.dev',
    'username' => 'user',
    'password' => 'pass',
    'dbname'   => 'mydb',
    'port'     => 5432
];

$dbAdapter  = new \Zend\Db\Adapter\Adapter($config);
$sqlAdapter = new \Zend\Db\Sql\Sql($dbAdapter);

$select = new \Zend\Db\Sql\Select();
$select->from("my_schema.ufn_user_client(2, 3)");

$results =  $dbAdapter->query(
    $sqlAdapter->buildSqlString($select),
    \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE
)->toArray();

var_dump($results);

也许这是特定于postgres pdo驱动程序以及它如何引用标识符的?

我在做类似的事情时没有任何问题。你能分享你的代码要点吗?更新。这可能只是postgres pdo驱动程序的问题,其他驱动程序可能会正确引用这些函数,也可能只是PostgreSQL实现SQL的固有问题。值得查看PostgreSQL文档。
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "my_schema.ufn_user_client(2, 3)" does not exist