快速入门:使用 PHP 连接到 Azure Database for MySQL 并查询其中的数据
适用于: Azure Database for MySQL - 单一服务器
重要
Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 有关如何迁移到 Azure Database for MySQL 灵活服务器的详细信息,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?
本快速入门演示了如何使用 PHP 应用程序连接到 Azure Database for MySQL。 同时还介绍了如何使用 SQL 语句在数据库中查询、插入、更新和删除数据。
先决条件
对于本快速入门,你需要:
具有活动订阅的 Azure 帐户。 免费创建帐户。
使用 Azure 门户创建 Azure Database for MySQL 单一服务器
或 Azure CLI 创建 Azure Database for PostgreSQL 单一服务器(如果没有)。请完成以下操作之一以启用连接,具体取决于你使用的是公共访问还是私有访问。
操作 连接方法 操作指南 配置防火墙规则 公用 Portal
CLI配置服务终结点 公用 Portal
CLI配置专用链接 Private Portal
CLI安装操作系统的最新 PHP 版本
注意
在本快速入门中,我们使用 MySQLi 库来管理连接和查询服务器。
获取连接信息
可以通过执行以下步骤,从 Azure 门户获取数据库服务器连接信息:
- 登录到 Azure 门户。
- 导航到“Azure Databases for MySQL”页。 可以搜索并选择 Azure Database for MySQL 服务器。
- 选择 MySQL 服务器(如 mydemoserver)。
- 在“概述”页中,复制“服务器名称”旁边的完全限定的服务器名称,以及“服务器管理员登录名”旁边的管理员用户名 。 若要复制服务器名称或主机名称,请将鼠标悬停在其上方,然后选择“复制”图标。
重要
- 如果忘记了密码,可以重置密码。
- 将 host、username、password 和 db_name 参数替换为你自己的值**
步骤 1:连接到服务器
SSL 默认为启用状态。 从本地环境进行连接可能需要下载 DigiCertGlobalRootG2 SSL 证书。 此代码调用:
- mysqli_init,用于初始化 MySQLi。
- mysqli_ssl_set,用于指向 SSL 证书路径。 这是本地环境所必需的,但不是应用服务 Web 应用或 Azure 虚拟机所必需的。
- mysqli_real_connect,用于连接到 MySQL。
- mysqli_close,用于关闭连接。
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin@mydemoserver';
$password = 'your_password';
$db_name = 'your_database';
//Initializes MySQLi
$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "/var/www/html/DigiCertGlobalRootG2.crt.pem", NULL, NULL);
// Establish the connection
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306, NULL, MYSQLI_CLIENT_SSL);
//If connection failed, show the error
if (mysqli_connect_errno())
{
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
步骤 2:创建表
使用以下代码进行连接。 此代码调用:
- mysqli_query,用于运行查询。
// Run the create table query
if (mysqli_query($conn, '
CREATE TABLE Products (
`Id` INT NOT NULL AUTO_INCREMENT ,
`ProductName` VARCHAR(200) NOT NULL ,
`Color` VARCHAR(50) NOT NULL ,
`Price` DOUBLE NOT NULL ,
PRIMARY KEY (`Id`)
);
')) {
printf("Table created\n");
}
步骤 3:插入数据
通过以下代码使用 INSERT SQL 语句插入数据。 此代码使用以下方法:
- mysqli_prepare,用于创建准备好的 insert 语句
- mysqli_stmt_bind_param,用于为每个插入的列值绑定参数。
- mysqli_stmt_execute
- mysqli_stmt_close,用于关闭语句
//Create an Insert prepared statement and run it
$product_name = 'BrandNewProduct';
$product_color = 'Blue';
$product_price = 15.5;
if ($stmt = mysqli_prepare($conn, "INSERT INTO Products (ProductName, Color, Price) VALUES (?, ?, ?)"))
{
mysqli_stmt_bind_param($stmt, 'ssd', $product_name, $product_color, $product_price);
mysqli_stmt_execute($stmt);
printf("Insert: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}
步骤 4:读取数据
在以下代码中使用 SELECT SQL 语句读取数据。 此代码使用以下方法:
- mysqli_query,用于执行 SELECT 查询
- mysqli_fetch_assoc,用于提取生成的行。
//Run the Select query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res))
{
var_dump($row);
}
步骤 5:删除数据
在以下代码中使用 DELETE SQL 语句删除行。 此代码使用以下方法:
- mysqli_prepare用于创建准备好的 delete 语句
- mysqli_stmt_bind_param,用于绑定参数
- mysqli_stmt_execute用于执行准备好的 delete 语句
- mysqli_stmt_close用于关闭语句
//Run the Delete statement
$product_name = 'BrandNewProduct';
if ($stmt = mysqli_prepare($conn, "DELETE FROM Products WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 's', $product_name);
mysqli_stmt_execute($stmt);
printf("Delete: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}
清理资源
若要清理本快速入门中使用的所有资源,请使用以下命令删除该资源组:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes