如何将数组编码为URL参数,在PHP中提取并作为函数参数传递给Postgres

如何将数组编码为URL参数,在PHP中提取并作为函数参数传递给Postgres,php,web-services,postgresql,url,Php,Web Services,Postgresql,Url,如果我有一个正常工作的postgres功能(类似于下面) 还有一个PHP脚本doStuff.PHP,它调用这个函数,该函数接受并使用这些值作为url编码的参数 $dbconn = pg_connect("host=192.168.1.222 port=5432 dbname=betya user=betya_user password=bettyboo") or die('Could not connect: ' . pg_last_error()); $query = 'SELECT

如果我有一个正常工作的postgres功能(类似于下面)

还有一个PHP脚本doStuff.PHP,它调用这个函数,该函数接受并使用这些值作为url编码的参数

$dbconn = pg_connect("host=192.168.1.222 port=5432 dbname=betya user=betya_user password=bettyboo")
    or die('Could not connect: ' . pg_last_error());
$query = 'SELECT * FROM package."func_SetValues"($1, $2)';
$result=pg_prepare($dbconn, "qy", $query);
$paramater1=$_REQUEST['id'];    
$paramater2=$_REQUEST['arr']; 
$result=pg_execute($dbconn, "qy", array($paramater1, $paramater2));

while($e=pg_fetch_assoc($result))
$output[]=$e;

print(json_encode($output));
pg_free_result($result);
pg_close($dbconn);
为了测试PHP脚本,下面的URL是否正确地编码了数组“arr”,使PHP能够“请求”值,并在理解的情况下传递给postgres?或者脚本中是否需要进一步的功能才能正确传递到pg_execute命令

http://192.168.1.50/server/doStuff.php?id=1790&arr[]=1788&arr[]=1790&arr[]=1805

是的,需要进一步的代码。数组必须经过非平凡的转换才能作为参数传递,因为PG希望它以文档中描述的文本形式传递:

在另一个问题中:,一个PHP函数已经提交给了S.O.,它可能正是您所需要的(而且更好,因为它支持递归数组)

http://192.168.1.50/server/doStuff.php?id=1790&arr[]=1788&arr[]=1790&arr[]=1805