PostgreSQL - PHP 介面:初學者指南

你好,有抱負的程式設計師們!今天,我們將踏上一段令人興奮的旅程,進入 PostgreSQL 和 PHP 的世界。別擔心,如果這些術語對你來說像是外星語言 - 到了這個教學的結尾,你將能夠流利地使用它們!

PostgreSQL - PHP

安裝

在我們進入有趣的內容之前,我們需要設定我們的工具。這就像在烹飪美味佳肴之前準備廚房一樣!

  1. 首先,從官方網站(postgresql.org)安裝 PostgreSQL。
  2. 接著,從 php.net 安裝 PHP。
  3. 最後,我們需要為 PHP 安裝 PostgreSQL 擴展。

在 Windows 上,你可以通過取消註釋 php.ini 文件中的以下行來啟用擴展:

extension=php_pgsql.dll

在基於 Unix 的系統上,你可能需要安裝 php-pgsql 套件:

sudo apt-get install php-pgsql

PHP 介面 API

PHP 為操作 PostgreSQL 提供了两個主要的 API:

API 描述
pgsql 原始的 PostgreSQL 擴展
PDO PHP 數據對象,為多種數據庫提供一致的介面

在這個教學中,我們將專注於 pgsql 擴展,因為它更專門針對 PostgreSQL,並提供了一些獨特的功能。

連接到數據庫

現在,我們已經全部設定好了,讓我們連接到我們的數據庫吧!這就像敲我們數據房屋的門。

<?php
$host = "localhost";
$port = "5432";
$dbname = "mydb";
$user = "myuser";
$password = "mypassword";

$conn = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");

if (!$conn) {
echo "發生錯誤。\n";
exit;
}

echo "成功連接!\n";
?>

在這段代碼中,我們使用 pg_connect() 函數來建立連接。我們提供給它必要的詳細信息,如主機、端口、數據庫名稱、用戶名和密碼。如果連接成功,我們將看到一個友好的 "成功連接!" 消息。

創建表

現在,我們已經進入我們的數據房屋,讓我們創建一個表 - 想像一下這就像建造一個書架來組織我們的信息。

<?php
$query = "CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INTEGER,
grade CHAR(1)
)";

$result = pg_query($conn, $query);

if (!$result) {
echo "發生錯誤。\n";
exit;
}

echo "表成功創建!\n";
?>

在這裡,我們使用 SQL 來創建一個名為 "students" 的表。id 欄位的 SERIAL 類型會自動為每個新條目增加 - 就像有一個機器人為我們編號每本書!

INSERT 操作

現在,讓我們向我們的表中添加一些數據。這就像在我們剛剛建造的書架上放置書籍。

<?php
$query = "INSERT INTO students (name, age, grade) VALUES ($1, $2, $3)";
$result = pg_query_params($conn, $query, array('John Doe', 18, 'A'));

if (!$result) {
echo "發生錯誤。\n";
exit;
}

echo "數據成功插入!\n";
?>

我們在這裡使用 pg_query_params(),它允許我们在查詢中使用佔位符 ($1, $2, $3)。這是一種更安全的插入數據的方式,它有助於防止 SQL 注入攻擊。想像一下這就像有一個保安在放置書籍前檢查每本書!

SELECT 操作

現在,讓我們從我們的表中檢索一些數據。這就像從書架上拿下一本書來閱讀。

<?php
$query = "SELECT * FROM students";
$result = pg_query($conn, $query);

if (!$result) {
echo "發生錯誤。\n";
exit;
}

while ($row = pg_fetch_assoc($result)) {
echo "ID: " . $row['id'] . "\n";
echo "Name: " . $row['name'] . "\n";
echo "Age: " . $row['age'] . "\n";
echo "Grade: " . $row['grade'] . "\n\n";
}
?>

在這裡,我們使用一個 while 循環和 pg_fetch_assoc() 來遍歷我們結果的每一行。這就像翻閱我們的書,一行一行地閱讀。

UPDATE 操作

有時候,我們需要改變我們表中的信息。這就像擦除和重寫我們書中的一部分。

<?php
$query = "UPDATE students SET grade = $1 WHERE name = $2";
$result = pg_query_params($conn, $query, array('B', 'John Doe'));

if (!$result) {
echo "發生錯誤。\n";
exit;
}

echo "數據成功更新!\n";
?>

在這個例子中,我們將 John Doe 的成績更新為 B。我們查詢中的 WHERE 子句就像一個書籤,幫助我們找到我們需要進行更改的確切位置。

DELETE 操作

最後,有時我們需要從我們的表中刪除數據。這就像從書架上拿下書並把它放入回收箱。

<?php
$query = "DELETE FROM students WHERE name = $1";
$result = pg_query_params($conn, $query, array('John Doe'));

if (!$result) {
echo "發生錯誤。\n";
exit;
}

echo "數據成功刪除!\n";
?>

在這裡,我們刪除 John Doe 的記錄。我們再次使用 WHERE 子句來指定我們想要刪除的記錄。

這就是全部!你剛剛學會了使用 PHP 來操作 PostgreSQL 的基礎。記住,熟能生巧,所以不要害怕嘗試這些命令。在你還沒有察覺之前,你將會像專家一樣管理數據庫!

祝賀你,未來的數據庫巫師!快樂編程!

Credits: Image by storyset