在 Web 開發中,資料庫的更新操作是核心功能之一。本文將透過一個完整的 PHP 範例,示範如何實作「查詢用戶列表 → 選擇特定用戶 → 顯示編輯表單 → 執行更新」的完整流程。
以下範例使用傳統的 mysql_* 函數(現代開發建議改用 PDO 或 MySQLi),展示基本邏輯:
<?php
// 1. 建立資料庫連線
$db = mysql_connect("localhost", "root");
mysql_select_db("mysite", $db);
// 2. 判斷是否有傳入 ID 參數
if (!isset($id)) {
// 2-1. 無 ID:顯示用戶列表供選擇
$result = mysql_query("SELECT * FROM user", $db);
if ($myrow = mysql_fetch_array($result)) {
echo "<h2 align='left'>請選擇要修改的用戶名字:</h2>";
do {
printf(
"%s<a href='%s?id=%s'>%s </a><br>\n",
$myrow["id"],
$PHP_SELF,
$myrow["id"],
$myrow["name"]
);
} while ($myrow = mysql_fetch_array($result));
} else {
echo "對不起!資料庫中沒有記錄";
}
} else {
// 3. 有 ID:進入編輯或更新流程
if (isset($_POST['submit'])) {
// 3-1. 執行更新
$sql = "UPDATE user SET
name='{$_POST['name']}',
city='{$_POST['city']}',
address='{$_POST['address']}',
email='{$_POST['email']}'
WHERE id={$id}";
mysql_query($sql);
echo "謝謝!資料更改完成";
} else {
// 3-2. 顯示編輯表單
$sql = "SELECT * FROM user WHERE id={$id}";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<h2 align="left">請對用戶的信息進行修改:</h2>
<form method="post" action="">
<input type="hidden" name="id" value="">
姓名:<input type="text" name="name" value=""><br>
城市:<input type="text" name="city" value=""><br>
住址:<input type="text" name="address" value=""><br>
電子郵件:<input type="text" name="email" value=""><br>
<input type="submit" name="submit" value="修改完畢">
</form>
$id 參數判斷是「列表模式」還是「編輯模式」。value 屬性。POST 方式提交,隱藏欄位保留 id。⚠️ 重要提醒:mysql_* 函數已於 PHP 7.0 移除,實際專案請採用:
並務必使用預處理語句處理使用者輸入,避免 SQL Injection 風險。
update.php → 顯示所有用戶連結update.php?id=5