You may find these code snippets handy
CREATE FUNCTION editpresentationparam(int,text[][])
RETURNS int
AS 'DECLARE prid ALIAS FOR $1; pairs ALIAS FOR $2; result int; rc int; i int;
BEGIN result := 0; i := 1; DELETE FROM tblPresentationParam WHERE ppprID = prid; WHILE
pairs[i][1]!= '''' LOOP INSERT INTO tblPresentationParam (ppprID,pppnID,ppValue) SELECT prid,
pnID,pairs[i][2] FROM
tblPresentationParamName WHERE pnName = pairs[i][1]; GET DIAGNOSTICS rc = ROW_COUNT; result :=
result+ rc; i := i + 1; END LOOP; RETURN result; END;'
LANGUAGE 'plpgsql';
<?php
//Turns a pair of values into a postgres array literal
//EG: "name","Bloggs, Bill 'owdy" ->
// '{"name","Bloggs, Bill ''owdy"}'
function makepair($p1,$p2) { $pat = array ("/\\\\/","/\"/","/'/"); $rep = array ( '\\\\' , '\"' ,"''"); return
'{"'.preg_replace($pat,$rep,$p1). '","'. preg_replace($pat,$rep,$p2).'"}';
}
function updatepresentationparam($formvars) { if(isset($formvars['ref'])&&preg_match('/^\d+$/',($formvars['ref']))) {
$q="SELECT editpresentationparam(".$formvars['ref'].",'{"; reset($formvars); while (list($pnname,$ppvalue) =
each($formvars)){ if($pnname != "ref" && $pnname != "func" && $ppvalue != "") {
$q.=makepair($pnname,$ppvalue).","; } } $q.="{,}}')"; if(! ($res=psql_query_wrap($q))) { return -1;
} else { $row = pg_fetch_array($res,0); return $row[0]; } } else return -1;
}
?>
==============================
David Stanaway
Personal: david@stanaway.net
Work: david@netventures.com.au