Ben PostgreSQL yaşayan tek bir işleve grup birden fazla sorguları istiyorum. Fonksiyon PDO kullanarak sorgulanacak.
Fonksiyonu:
CREATE OR REPLACE FUNCTION "test_multipe_refcursor"()
RETURNS SETOF refcursor AS $BODY$
DECLARE
parentRC refcursor;
childRC refcursor;
BEGIN
open parentRC FOR
SELECT * FROM parent;
RETURN NEXT parentRC;
open childRC FOR
SELECT * FROM child;
RETURN NEXT childRC;
RETURN;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "test_multipe_refcursor"() OWNER TO postgres;
Burada PHP kodu bulunuyor. Her zamanki bağlantı özelliklerini ayarlar bir tek sınıf, özel bir şey olarak "Database".
$database = Database::load();
$sql = "select * from test_multipe_refcursor();";
$p = $database->query($sql);
$i = 1;
do
{
$this->set('set' . $i, $p->fetchAll(PDO::FETCH_ASSOC));
$i++;
} while ($p->nextRowset());
$p->closeCursor();
Ve sonuç.
PDOException: SQLSTATE[IM001]: Driver does not support this function: driver does not support multiple rowsets in xxxx.php on line 32
Bu desteklenmiyor olduğunu belirtmek gibi görünüyor, ama sonra tekrar, ben ne olduğunu tam olarak tanımlayan bir listesini bulamıyorum.
Herkes bu çalışma almak başardı?
Referanslar: