TCP错误:与Azure SQL数据库的ODBC连接



使用Azure SQL数据库为我的应用程序提供了PHP Exchange。我有一个本地运行的MSSQL Express服务器,但是当我搬到Azure时,我正在收到一个连接错误:

Warning: odbc_connect(): SQL error: [Microsoft][SQL Server Native Client 11.0]TCP Provider: No such host is known. , SQL state 08001 in SQLConnect in C:wampwwwUnitySQLconnect.php on line 13

我的代码如下(更改登录详细信息,但格式是相同的):

<?php 
    $username = $_REQUEST['username'];
    $password = $_REQUEST['password'];
    $user = 'Login@Azure';
    $pass = 'azure';
    $server = 'azure.database.secure.windows.net,port';
    $database = 'db';

// No changes needed from now on
    $connection_string = "DRIVER={SQL Server Native Client 11.0};;SERVER=$server;DATABASE=$database";
    $conn = odbc_connect($connection_string,$user,$pass);
    $q = "select top 1 u.First, u.UserEmail, u.UserTelephone, u.UserId, MAX
(us.session) as sessionid, us.LastQuestion as LastQuestion from [user] as u LEFT OUTER join usersession as us
On u.UserId = us.userid
where UserEmail='$username' AND UserTelephone='$password'
group by u.[First], u.UserEmail, u.UserTelephone, u.UserId, LastQuestion
Order by sessionid DESC";
    $result = odbc_exec($conn,$q);
    $num_rows = odbc_num_rows($result);
    if($num_rows > 0)
    {
        $row = odbc_fetch_array($result);
        echo "First=". $row['First'] . "/" . "UserId=" . $row['UserId'] . "/" . "SessionId=" . $row['sessionid'] . "/" . "LastQuestion=" . $row['LastQuestion'] . "/" . "UserEmail=" . $row['UserEmail']. "/" . "UserTelephone=" . $row['UserTelephone'];
    }
?>

您的$服务器设置不正确。而不是

$server = 'azure.database.secure.windows.net,port';

尝试

$server = 'tcp:<YOUR_SRV_NAME>.database.windows.net,1433';

用SQL数据库的名称替换服务器。有关更多信息,请查看本教程。

最新更新