如何使用php查询创建具有权限的postgres用户
我想使用php创建一个对数据库中的表具有所有权限的用户,但我的代码无法正常工作。 我尝试使用以下代码:如何使用php查询创建具有权限的postgres用户,php,sql,postgresql,privileges,Php,Sql,Postgresql,Privileges,我想使用php创建一个对数据库中的表具有所有权限的用户,但我的代码无法正常工作。 我尝试使用以下代码: $query="CREATE USER $1 WITH password $2"; $result = pg_prepare($dbh, "", $query); $result = pg_execute($dbh, "", array($utente, md5($psw))); $query="GRANT ALL PRIVILEGES ON match to $1"; $resu
$query="CREATE USER $1 WITH password $2";
$result = pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "", array($utente, md5($psw)));
$query="GRANT ALL PRIVILEGES ON match to $1";
$result = pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "", array($utente));
然后我试着改变它,把变量移到字符串之外,但它也不起作用
$query="CREATE USER " .$utente . " WITH password ". md5($psw);
$result = pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "", array());
$query="GRANT ALL PRIVILEGES ON match to " . $utente;
$result = pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "", array());
$result为false,在我的数据库中,我没有获得要创建的新用户。- 用户名是一个标识符,可以用双引号括起来,也可以按原样保留
- 密码是一个文本值,必须用单引号括起来
pg_prepare
中的参数数组中的值替换$1
下面是一个用“手”逃逸的工作示例
请你详细说明我的代码不能正常工作是什么意思?你有错误吗?@GMB我是说pg_execute返回false,它什么也没做。我的数据库中没有新用户
$utente = pg_escape_identifier('username');
$psw = pg_escape_string('pass');
$query="CREATE USER {$utente} WITH password '{$psw}'";
pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "", []);