plPHP RC1 現已推出

發布於 2004-04-27

它目前支援 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 網站的先前版本遷移。對於遷移造成的任何格式問題,我們深感抱歉。