快速入門:使用 PHP 來連線及查詢適用於 MySQL 的 Azure 資料庫中的資料
適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?
本快速入門示範如何使用 PHP 應用程式來連線到 Azure Database for MySQL。 它會顯示如何使用 SQL 陳述式來查詢、插入、更新和刪除資料庫中的資料。
必要條件
在本快速入門中,您需要:
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
使用 Azure 入口網站建立適用於 MySQL 的 Azure 資料庫單一伺服器
如果沒有,請使用 Azure CLI。根據您使用的是公用或私人存取,完成下列其中一項動作以啟用連線。
動作 連線方法 操作指南 設定防火牆規則 公開 入口網站
CLI設定服務端點 公開 入口網站
CLI設定私人連結 私人 入口網站
CLI為您的作業系統安裝最新的 PHP 版本
注意
在本快速入門中,我們使用 MySQLi 程式庫來管理連線及查詢伺服器。
取得連線資訊
您可以依照下列步驟,從 Azure 入口網站取得資料庫伺服器連線資訊:
- 登入 Azure 入口網站。
- 瀏覽至 [適用於 MySQL 的 Azure 資料庫] 頁面。 您可以搜尋並選取 適用於 MySQL 的 Azure 資料庫 伺服器。
- 選取您的 MySQL 伺服器 (例如 mydemoserver)。
- 在 [概觀] 頁面上,複製 [伺服器名稱] 旁的完整伺服器名稱,以及 [伺服器管理員登入名稱] 旁的管理使用者名稱。 若要複製伺服器名稱或主機名稱,請將滑鼠暫留在其上方,然後選取 [複製] 圖示。
重要
- 如果您忘記密碼,可以重設密碼。
- 請將主機、使用者名稱、密碼和 db_name 參數取代為您自己的值**
步驟 1:連線到伺服器
依預設會啟用 SSL。 您可能需要下載 DigiCertGlobalRootG2 SSL 憑證,才能從本機環境連線。 此程式碼會呼叫:
- mysqli_init,以初始化 MySQLi。
- mysqli_ssl_set,以指向 SSL 憑證路徑。 這對於您的本機環境而言是必要的,但 App Service 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