在plesk api中,如果我不知道数据库ID,如何将用户添加到数据库

时间:2016-08-22 09:00:04

标签: php xml database api plesk

在Oleg Neumyvakin的帮助下,我设法使用plesk api创建数据库,但现在我需要将用户添加到该数据库。我已经研究了如何将用户添加到数据库,但它需要知道数据库的ID,我不会在php中知道。例如,以下请求代码创建数据库

<packet>
<database>
<add-db>
   <webspace-id>$webspaceId</webspace-id>
   <name>$dbName</name>
   <type>mysql</type>
</add-db>
</database>
</packet>

以下代码创建用户并将其添加到数据库

<packet>
<database>
  <add-db-user>
      <db-id>26</db-id>
      <login>zebra</login>
      <password>zebra500</password>
   </add-db-user>
</database>
</packet>

你可以看到我的问题。第二部分使用数据库的id为26来添加用户,但是我不知道id而不查看plesk,这会使对象失败。

那么如何创建数据库并同时添加用户呢?

2 个答案:

答案 0 :(得分:1)

我终于得到了答案。虽然我不确定它是否是最好的答案。目前这是唯一的答案。如果你能给我一个更好的解决方案。我当然会打勾你的。我正在使用preg匹配获取id,然后剥离id标记并使用id创建用户。

$request = <<<EOF
<packet>
<database>

<add-db>
   <webspace-id>$webspaceId</webspace-id>
   <name>$dbName</name>
   <type>mysql</type>
</add-db>

</database>
</packet>
EOF;

$response = $client->request($request); // Send query to Plesk host
echo $response; // show response

// This gets the id by using preg match
preg_match('/<id>(.*)<\/id>/',$response,$match);
$databaseId=$match[0];
echo '</br></br>match:'.($databaseId).'</br></br>';
// This strips the id tag
$answer=$match[0];
$search = array('<id>', '</id>');
$replace = array("","");
$id = str_replace($search, $replace, $answer);

$request = <<<EOF
<packet>
<database>

  <add-db-user>
      <db-id>$id</db-id>
      <login>bert</login>
      <password>bert500</password>
   </add-db-user>

</database>
</packet>
EOF;

'</br></br>'.$response = $client->request($request); // Send query to Plesk host
echo $response; // show response

答案 1 :(得分:1)

您可以使用任何PHP内置XML解析器,例如SimpleXMLDOMDocument