plPHP - PHP für PostgreSQL
PHP ist eine sehr verbreitete Skriptsprache - PostgreSQL ist ein objektrelationales Datenbank Management System. Warum also nicht beides vereinen?
Bisher war es nur möglich mit PHP auf PostgreSQL zuzugreifen.
Jetzt hat sich das Blatt gewendet und Sie haben die Möglichkeit Funktionen und Trigger in PostgreSQL in PHP zu verfassen.
Ein Vorteil von PostgreSQL war immer, dass Funktionen und Trigger in verschiedenen Sprachen verfasst werden konnten (pgSQL, Pyton, Ruby...). Jetzt ist PHP als einfachste Anwendung dazu gekommen.
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(); //will return "hello plphp" in our example
Es lassen sich auch sehr einfach Datensätze als Ergebnis zurück geben:
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);
Das Ergebnis sieht dann wie folgt aus:
f1 | f2 | f3 |
1 | hello | world |
2 | hello | postgres |
3 | hello | plphp |