我疯狂地试图在 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
、...(并执行。