1

我已经将一个 php 网站部署到 azure。它有一个这样的连接字符串:

    $host = 'localhost';
$username = 'xxxxx';
$password = 'xxxxx';
$database = 'xxxxx';


$con = mysql_connect($host, $username, $password);

我需要在部署时更改它,使其指向 ClearDB Mysql 数据库。我发现端点详细信息如下:

Database=XXXX;Data Source=eu-cdbr-azure-north-c.XXXX.net;User Id=XXXX;Password=XXXX

本文介绍了如何使用环境变量创建连接字符串。

[ http://azure.microsoft.com/blog/2013/07/17/windows-azure-web-sites-how-application-strings-and-connection-strings-work/]

但我不确定如何使用 mysql_connect() 函数来完成这项工作。我尝试用 Microsoft 为 cleardb 数据库提供的详细信息替换主机、用户名、密码和 db 的值,但我收到错误消息“尝试以访问权限禁止的方式访问套接字”

非常感谢您的任何建议。

4

1 回答 1

1

在您的 php 代码中,您可以执行此操作

foreach ($_SERVER as $key => $value) {
    if (strpos($key, "MYSQLCONNSTR_") !== 0) {
        continue;
    }

    $host = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
    $username = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
    $password = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
    break;
}

/* now you can use the $host, $username, $password like you normally would */
$con = mysql_connect($host, $username, $password);
于 2014-06-01T18:39:12.140 回答