将 SQL 数据库和 PHP 移动到 Azure - 证明连接

Moving SQL db and PHP to Azure - Proving connection

我正在将现有的 PHP 网站和 SQL 数据库从离线测试环境移动到 Azure。我发现很难 return 下面的简单查询来证明我的 Azure SQL 数据库和 Azure 托管的 php 网页之间的连接。我已经在我的测试环境中测试了以下内容,我的数据是 returned。当我 运行 它在 Azure 中时,只有标题“Name Age”被 return 编辑。 (注意:我无法在编写 php 语句时显示 < ?php & ?>)

$serverName = "tcp:DBName.database.windows.net,1443";
$connectionOptions = array("Database" => "DBName","Uid" => "DBUser","PWD" => "DBpwd");
//Establishes the connection
$connection = sqlsrv_connect($serverName, $connectionOptions);
$tsql= "SELECT Name, Age
     FROM Person";
$query = mysqli_query($connection, $tsql);

      <tr>
        <th>Name</th>
        <th>Age</th>
      </tr>
        <tbody>
          <?php while ($row = mysqli_fetch_array($query))
          { ?>
            <tr>
              <td><?php echo $row['Name'] ?></td>
              <td><?php echo $row['Age'] ?></td>
            </tr>
          <?php } ?>
        </tbody>
    </section>
  </tbody>

在 Azure 中,我只完成了以下资源的初始设置:SQL 服务器、SQL 数据库和应用服务。我在 SQL 数据库(来自 Microsoft SQL Server Management Studio)中填充了一个名为 Person 的 table 以及一些姓名和年龄数据,并加载了我的测试 php 页面上面的代码到我的应用程序服务。

我之前在我的测试环境中使用我的PHPAdmin,但是我想将它移动到 Azure 以使其更安全和更易于访问 - 我知道这将附带一些 re-write 代码但是我想先证明连接。我知道我遗漏了一些明显的东西,但我们将不胜感激。

您正在使用来自两个不同 PHP 扩展(sqlsrv_connect()mysqli_query() \ mysqli_fetch_array())的函数。要连接到 SQL 服务器,您只需要 sqlsrv_ 功能(PHP 驱动程序的一部分,用于 SQL 服务器)。

根据您的尝试,以下脚本演示了如何连接到 SQL 服务器并检索数据:

<?php
// Connection
$serverName = "tcp:DBName.database.windows.net,1443";
$connectionOptions = array("Database" => "DBName", "Uid" => "DBUser", "PWD" => "DBpwd");
$connection = sqlsrv_connect($serverName, $connectionOptions);
if ($connection === false) {
    echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
    exit;
}   
// Statement
$tsql = "SELECT Name, Age FROM Person";
$query = sqlsrv_query($connection, $tsql);
if ($query === false) {
    echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
    exit;
}   
?>
<tr>
    <th>Name</th>
    <th>Age</th>
</tr>
<tbody>
<?php 
// Data
while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) { 
?>
<tr>
    <td><?php echo $row['Name'] ?></td>
    <td><?php echo $row['Age'] ?></td>
</tr>
<?php 
} 
?>
</tbody>
<?php
// End
sqlsrv_free_stmt($query);
sqlsrv_close($connection);
?>