快速入門:使用 PHP 連線和查詢 適用於 PostgreSQL 的 Azure 資料庫 中的數據 - 彈性伺服器
適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
本快速入門示範如何使用 PHP 應用程式連線到 適用於 PostgreSQL 的 Azure 資料庫。 它會顯示如何使用 SQL 陳述式來查詢、插入、更新和刪除資料庫中的資料。 本文中的步驟假設您已熟悉使用 PHP 進行開發,而且不熟悉 適用於 PostgreSQL 的 Azure 資料庫。
必要條件
本快速入門會使用建立 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例中建立的資源作為起點。
安裝 PHP
在您的伺服器上安裝 PHP,或建立包含 PHP 的 Azure Web 應用程式 。
Windows
- 下載 PHP 7.1.4 非線程安全 (x64) 版本
- 安裝 PHP 並參考 PHP 手冊以便進一步設定
- 程式碼會使用 PHP 安裝內含的 pgsql 類別 (ext/php_pgsql.dll)。
- 藉由編輯 php.ini 組態 (通常位於
C:\Program Files\PHP\v7.1\php.ini
),啟用 pgsql 擴充功能。 組態檔應包含具有extension=php_pgsql.so
文字的一行。 如果未顯示,請新增文字並儲存盤案。 如果文字存在,但加上分號前置詞加上批注,請移除分號來取消批註文字。
Linux (Ubuntu)
- 下載 PHP 7.1.4 非線程安全 (x64) 版本
- 安裝 PHP 並參考 PHP 手冊以便進一步設定
- 程式碼會使用 pgsql 類別 (php_pgsql.so)。 透過執行
sudo apt-get install php-pgsql
來進行安裝。 - 藉由編輯
/etc/php/7.0/mods-available/pgsql.ini
組態檔,啟用 pgsql 擴充功能。 組態檔應包含具有extension=php_pgsql.so
文字的一行。 如果未顯示,請新增文字並儲存盤案。 如果文字存在,但加上分號前置詞加上批注,請移除分號來取消批註文字。
macOS
- 下載 PHP 7.1.4 版本
- 安裝 PHP 並參考 PHP 手冊以便進一步設定
取得連線資訊
取得連線到 Azure Database for PostgreSQL 所需的連線資訊。 您需要完整的伺服器名稱和登入認證。
- 登入 Azure 入口網站。
- 從 Azure 入口網站 左側功能表中,選取 [所有資源],然後搜尋您建立的伺服器(例如 mydemoserver)。
- 選取伺服器名稱。
- 從伺服器的 [概觀] 面板,記下 [伺服器名稱] 和 [伺服器管理員登入名稱]。 如果您忘記密碼,您也可以從此面板重設密碼。
連線及建立資料表
使用下列程序代碼,使用 CREATE TABLE SQL 語句連接及建立數據表,後面接著 INSERT INTO SQL 語句,以將數據列新增至數據表。
程式代碼呼叫方法 pg_connect() 可用來連線到 適用於 PostgreSQL 的 Azure 資料庫。 然後,它會呼叫 方法 - pg_query() - 數次執行數個命令,並 pg_last_error() 來檢查詳細數據是否每次發生錯誤。 然後,它會呼叫 方法 pg_close() 關閉連線。
以$host
您的值取代、 $database
$user
、 和 $password
參數。
<?php
// Initialize connection variables.
$host = "mydemoserver.postgres.database.azure.com";
$database = "mypgsqldb";
$user = "mylogin@mydemoserver";
$password = "<server_admin_password>";
// Initialize connection object.
$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
or die("Failed to create connection to database: ". pg_last_error(). "<br/>");
print "Successfully created a connection to the database.<br/>";
// Drop the previous table of the same name if one exists.
$query = "DROP TABLE IF EXISTS inventory;";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
print "Finished dropping table (if existed).<br/>";
// Create table.
$query = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
print "Finished creating table.<br/>";
// Insert some data into the table.
$name = '\'banana\'';
$quantity = 150;
$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
$name = '\'orange\'';
$quantity = 154;
$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
$name = '\'apple\'';
$quantity = 100;
$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error()). "<br/>";
print "Inserted 3 rows of data.<br/>";
// Closing connection
pg_close($connection);
?>
讀取資料
使用下列程式碼搭配 SELECT SQL 陳述式來連線和讀取資料。
程式代碼呼叫方法 pg_connect() 可用來連線到 適用於 PostgreSQL 的 Azure 資料庫。 然後它會呼叫 pg_query() 方法來執行 SELECT 命令,並將結果保留在結果集中,以及呼叫 pg_last_error() 來檢查詳細資料,是否發生錯誤。 若要讀取結果集,則會在迴圈中呼叫 pg_fetch_row() 方法 (每列一次),並在 $row
陣列中擷取資料列資料,而每個陣列位置中的每個資料行都有一個資料值。 若要釋出結果集,則會呼叫 pg_free_result()。 然後它會呼叫 pg_close() 方法來關閉連線。
以$host
您的值取代、 $database
$user
、 和 $password
參數。
<?php
// Initialize connection variables.
$host = "mydemoserver.postgres.database.azure.com";
$database = "mypgsqldb";
$user = "mylogin@mydemoserver";
$password = "<server_admin_password>";
// Initialize connection object.
$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
or die("Failed to create connection to database: ". pg_last_error(). "<br/>");
print "Successfully created a connection to the database. <br/>";
// Perform some SQL queries over the connection.
$query = "SELECT * from inventory";
$result_set = pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
while ($row = pg_fetch_row($result_set))
{
print "Data row = ($row[0], $row[1], $row[2]). <br/>";
}
// Free result_set
pg_free_result($result_set);
// Closing connection
pg_close($connection);
?>
更新資料
使用下列程式碼搭配 UPDATE SQL 陳述式來連線和更新資料。
程式代碼呼叫方法 pg_connect() 可用來連線到 適用於 PostgreSQL 的 Azure 資料庫。 然後它會呼叫 pg_query() 方法來執行命令,以及呼叫 pg_last_error() 來檢查詳細資料,是否會發生錯誤。 然後它會呼叫 pg_close() 方法來關閉連線。
以$host
您的值取代、 $database
$user
、 和 $password
參數。
<?php
// Initialize connection variables.
$host = "mydemoserver.postgres.database.azure.com";
$database = "mypgsqldb";
$user = "mylogin@mydemoserver";
$password = "<server_admin_password>";
// Initialize connection object.
$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
or die("Failed to create connection to database: ". pg_last_error(). ".<br/>");
Print "Successfully created a connection to the database. <br/>";
// Modify some data in a table.
$new_quantity = 200;
$name = '\'banana\'';
$query = "UPDATE inventory SET quantity = $new_quantity WHERE name = $name;";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). ".<br/>");
print "Updated 1 row of data. </br>";
// Closing connection
pg_close($connection);
?>
刪除資料
使用下列程式碼搭配 DELETE SQL 陳述式來連線和讀取資料。
程式代碼呼叫方法 pg_connect() 用來連線到 適用於 PostgreSQL 的 Azure 資料庫。 然後它會呼叫 pg_query() 方法來執行命令,以及呼叫 pg_last_error() 來檢查詳細資料,是否會發生錯誤。 然後它會呼叫 pg_close() 方法來關閉連線。
以$host
您的值取代、 $database
$user
、 和 $password
參數。
<?php
// Initialize connection variables.
$host = "mydemoserver.postgres.database.azure.com";
$database = "mypgsqldb";
$user = "mylogin@mydemoserver";
$password = "<server_admin_password>";
// Initialize connection object.
$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
or die("Failed to create connection to database: ". pg_last_error(). ". </br>");
print "Successfully created a connection to the database. <br/>";
// Delete some data from a table.
$name = '\'orange\'';
$query = "DELETE FROM inventory WHERE name = $name;";
pg_query($connection, $query)
or die("Encountered an error when executing given sql statement: ". pg_last_error(). ". <br/>");
print "Deleted 1 row of data. <br/>";
// Closing connection
pg_close($connection);
?>
清除資源
若要清除在此快速入門期間使用的所有資源,請使用下列命令刪除資源群組:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
相關內容
- 管理 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。
- 快速入門:使用 Python 從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例連線和查詢數據。
- 快速入門:使用 Java 從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例連線和查詢數據。
- 快速入門:使用 .NET (C#) 從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例連線和查詢數據。
- 快速入門:使用 Go 語言從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例連線和查詢數據。
- 快速入門:使用 Azure CLI 從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例連線和查詢數據。
- 快速入門:從 適用於 PostgreSQL 的 Azure 資料庫 匯入數據 - Power BI 中的彈性伺服器。