1

PHP Web サイトを 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() 関数で機能させる方法がわかりません。ホスト、ユーザー名、パスワード、および db の値を Microsoft から提供された cleardb データベースの詳細に置き換えようとしましたが、「アクセス許可によって禁止されている方法でソケットにアクセスしようとしました」というエラーが表示されます。

ご提案いただきありがとうございます。

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 に答える