/Banco de dados

voltar
/Banco de dados

Lançado o Pl/PHP

PorDaniel Oslei em

Foi lançado o Pl/PHP, mais uma linguagem procedural para criação
de funções no PostgreSQL. Mais um exemplo do grande potencial que o PostgreSQL.
Já existe várias outras linguagens para a criação de funções, como o Pl/Java,
Pl/Python, Pl/PgSQL e Pl/Perl dentre várias outras. As funções são criadas
na qual os comandos seguem a sintaxe do PHP.

Suporta atualmente SPI (Server Programming Interface), tipos
compostos, funções que retornem SETOF, triggers, funções Trusted e Untrusted.

Abaixo há exemplos da criação de funções em Pl/PHP extraídos
do site www.postgresql.org:

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

Abaixo há um exemplo de uso de Pl/PHP com funções que retornem
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);

Will return:
f1 | f2 | f3
—-+——-+———-
1 | hello | world
2 | hello | postgres
3 | hello | plphp

Neste último exemplo é mostrado que pode-se criar funções PHP
dentro da função que será armazenado no banco:

CREATE OR REPLACE FUNCTION insertIntoArray() RETURNS varchar AS ‘

function array_insert(&$array, $value, $pos)

{
if (!is_array($array))
return FALSE;
$last = array_splice($array, $pos);
array_push($array, $value);
$array = array_merge($array, $last);
}

function array_2string($array)
{
$vals=array_values($array);
$keys=array_keys($array);
$x=0;
while($x<count($keys)) {
if ($x!=0)
{
$result.=”|”;
}
$result.=$keys[$x].”=”.$vals[$x];
$x++;
}
return $result;
}
$a = array(“zero”, “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”);
array_insert($a, “POOP”, 4);
return array_2string($a);
‘ LANGUAGE ‘plphp’;

O Pl/PHP pode ser encontrado no site da Command Prompt, Inc.,
para mais informações clique
aqui
.

Mensagem do anunciante:

Experimente a Umbler, startup de Cloud Hosting por demanda feita para agências e desenvolvedores e ganhe até R$ 100 em créditos!

Deixe um comentário! 1

1 comentário

Comentários

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentando como Anônimo

leia mais
Este projeto é mantido e patrocinado pelas empresas: