我正在尝试使用PHP将来自Azure的SQL数据库中的解析数据转换为JSON。我在免费的网络托管服务器上有PHP脚本。当我要连接到Azure的SQL数据库时,我收到了一个错误。
我的PHP脚本
<?php
$serverName = "tcp:ss4rda587x.database.windows.net,1433";
$connectionOptions = array("Database"=>"DistribuireColete",
"Uid"=>"danielcocos26@ss4rda587x", "PWD"=>"******");
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
//Select Query
$tsql = "SELECT * FROM Clienti";
//Executes the query
$getProducts = sqlsrv_query($conn, $tsql);
if (!$getProducts)
{
//Query failed
echo("Nu merge");
}
else
{
$clienti = array(); //Create an array to hold all of the contacts
//Query successful, begin putting each contact into an array of contacts
while ($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)) //While there are still contacts
{
//Create an associative array to hold the current contact
//the names must match exactly the property names in the contact class in our C# code.
$client = array("ID" => $row['IdClient'],
"Name" => $row['NumeClient'],
"Number" => $row['TelNumar'],
"ImageBase64" => base64_encode($row['Icon'])
);
//Add the contact to the contacts array
array_push($clienti, $client);
}
//Echo out the contacts array in JSON format
echo json_encode($clienti);
}
?>
我收到的错误
Warning: sqlsrv_query() expects parameter 1 to be resource, boolean given in H:\root\home\cdan26-001\www\site1\GetClienti.php on line 14
答案 0 :(得分:1)
你需要:
一个小建议 - 您最好使用免费的Azure Web站点 Web应用程序(http://azure.microsoft.com/en-us/services/app-service/web/),而不是免费的Web托管服务提供商。至少您不会遇到配置Azure SQL数据库防火墙的问题。
答案 1 :(得分:1)
我同意astaykov,请通过Azure门户设置'允许的IP地址'(您的免费网络托管服务提供商的公共IP):
否则您的网页应该在页面上打印“Nu merge”。另外,我在你的代码片段中有点困惑:
$ row = sqlsrv_fetch_array($ stmt,SQLSRV_FETCH_ASSOC)
您可能还想将$stmt
更改为$getProducts
。