gpt4 book ai didi

php - pg_prepare 创建角色的问题?

转载 作者:行者123 更新时间:2023-11-29 12:44:37 26 4
gpt4 key购买 nike

你好,我想用准备好的语句创建一个新的 postgresql 角色:我的代码:

$stmt = pg_prepare($conn,"test","CREATE ROLE $1 WITH LOGIN PASSWORD $2 NOCREATEDB NOCREATEROLE");
$result = pg_execute($conn,"test",array($username,$password));
if (!$result){
die("error in SQL query:".pg_last_error());
}

但是我在执行时遇到了这个错误:PHP 警告:pg_prepare():查询失败:FEHLER:Syntaxfehler bei »$1«

如果我尝试一个简单的选择:

$stmt = pg_prepare($conn,"test","Select * from pg_user where usename=$1");

一切正常。

谁有提示?谢谢

最佳答案

您不能为此目的使用准备好的语句。准备好的语句的参数只能引用数据值(比如在 INSERTUPDATE 语句中,或者在你给出的 WHERE 示例中) . CREATE ROLE 语句中角色名称和密码的值需要作为字符串文字提供。

CREATE ROLE 中使用准备好的语句也完全没有用。准备好的语句用于计划一次复杂语句的执行,然后使用不同的参数多次执行它。 CREATE ROLE 语句并不复杂,如果可能的话,您也不会有足够的语句在单个 session 中运行以使准备好的语句有用。

关于php - pg_prepare 创建角色的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com