使用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数据库的名称替换服务器。有关更多信息,请查看本教程。