(PHP/Postgresql)调用一个返回void的函数?



我疯狂地试图在 PHP 代码中调用一个返回 void 的函数,带有 pg_prepare/pg__execute...

$result = pg_prepare($dbconn, "",'SELECT * FROM dungeonasdb.crea_personaggio( "$nome", "$descrizione", "$email", "$password")');
$result = pg_execute($dbconn, "", NULL ) or die('Query creazione fallita');

是否有我做错了pg_prepare/pg_execute设置? 谢谢

你可能想做一些不同的事情:

pg_prepare:不要放置特定的值,而是放置占位符。稍后会将它们绑定到值。我更喜欢总是给语句一个名字。

如果 dungeonasdb.crea_personaggio 是返回 void 的函数,则可以通过以下方式调用它:

SELECT dungeonasdb.crea_personaggio(...)

您不能通过 SELECT * FROM dungeonasdb.crea_personaggio(...) 调用函数,因为这意味着 dungeonasdb.crea_personaggio 是一个集合返回函数,而事实并非如此。

所以你可能希望你的陈述是:

$result = pg_prepare($dbconn, "crea_personnagio", 
   'SELECT dungeonasdb.crea_personaggio($1, $2, $3, $4)'); 
$result = pg_execute($dbconn, "crea_personnagio", 
    ARRAY($nome, $descrizione, $email, $password)) 
    or die('Query execuzione fallita');

您的第二条语句是一个 pg_execute 语句,它将参数绑定到占位符($1、...(并执行。

最新更新