在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,这会使对象失败。
那么如何创建数据库并同时添加用户呢?
答案 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解析器,例如SimpleXML或DOMDocument