它目前支援 SPI、複合類型、SetOf 函數、觸發器、信任和非信任模式。
自上次發布 (Beta3) 以來,已新增 SPI、複合類型、SetOf 函數和編譯一次。以下是 plPHP RC1 版本目前所能執行的一些範例。
使用全域變數在函數呼叫之間儲存資料
CREATE OR REPLACE FUNCTION set_var(text) RETURNS text AS '
global $_SHARED;
$_SHARED[''first'']=$args[0];
return ''ok'';
' LANGUAGE plphp
CREATE OR REPLACE FUNCTION get_var() RETURNS text AS '
global $_SHARED;
return $_SHARED[''first''];
' LANGUAGE plphp;
SELECT set_var('hello plphp');
SELECT get_var(); // 在我們的範例中將傳回 "hello plphp"
資料庫存取 (SPI)
$query = "INSERT INTO my_table VALUES (1, ''test'')";
$rv = spi_exec_query($query);
結果將被存取為
$res = $rv[''status'']; // 在我們的範例中為 SPI_OK_INSERT
$nrows = $rv[''rows''];
SetOf 函數
CREATE TYPE __testsetphp AS (f1 integer, f2 text, f3 text);
CREATE OR REPLACE FUNCTION php_set(integer) RETURNS SETOF __testsetphp AS '
$ret[0][0]=$args[0];
$ret[0][1]="hello";
$ret[0][2]="world";
$ret[1][0]=2*$args[0];
$ret[1][1]="hello";
$ret[1][2]="postgres";
$ret[2][0]=3*$args[0];
$ret[2][1]="hello";
$ret[2][2]="plphp";
return $ret;
' LANGUAGE 'plphp';
SELECT * FROM php_set(1);
將傳回
f1 | f2 | f3
----+-------+----------
1 | hello | world
2 | hello | postgres
3 | hello | plphp
plPHP 可以在 Command Prompt, Inc. 的社群頁面找到,位於 此處
這篇文章已從 PostgreSQL 網站的先前版本遷移。對於遷移造成的任何格式問題,我們深感抱歉。