2012-10-12 72 views
1
CREATE OR REPLACE FUNCTION adduser(fn character varying,ln character varying,cit character varying,i integer,id integer) 
    RETURNS void AS 
$BODY$ 
     BEGIN     
    update tabtow set fname=fn,lname=ln,city=cit,phnum=i where phnum=id; 
    select * from tabtow; 
     END; 
$BODY$ 
    LANGUAGE plpgsql VOLATILE 
    COST 100; 
ALTER FUNCTION increment(integer) 
    OWNER TO postgres; 

這是我的函數,如何在PHP中調用它?在PHP中調用PostgreSQL函數

我想這樣的,但它不工作:

$sql = "update tabtow set fname = '$_REQUEST[fn]', lname = '$_REQUEST[ln]', city = '$_REQUEST[ci]', phnum = $_REQUEST[phnum] where phnum = $_REQUEST[id1]"; 
$res = pg_query($sql); 
+1

請了解SQL注入。 '?fn ='; UPDATE%20users%20SET%20password ='somethingIknow' - ' – Ryan

+0

This。一千次這個。另外,你的網址是什麼? ;) –

回答

2

只需調用該函數:

$sql = 'SELECT adduser($1,$2,$3,$4)'; 
$res = pg_prepare($dbconn, "my_query", $sql); 
$res = pg_execute($dbconn, "my_query", array('a','b','c',1)); 

而像上面說的評論者,不建立查詢通過手動使用上面的參數化查詢。