将 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);
?>
我正在将现有的 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);
?>