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

时间:2015-05-05 13:25:21

标签: php azure azure-sql-database

使用Azure SQL数据库为我的应用程序使用php交换。我有一个在本地运行的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:\wamp\www\UnitySQL\connect.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'];
    }
?>

1 个答案:

答案 0 :(得分:0)

您的$ server设置不正确。而不是

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

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

替换为SQL数据库服务器的名称。 有关更多信息,请查看this tutorial