首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP + MySQL 實作 INSERT INTO 資料新增完整指南

     編輯:PHP 綜合知識

前言

在 PHP 網頁開發中,資料庫操作是核心技能之一。INSERT INTO 敘述用於向資料表新增記錄,是最基礎也最常用的 SQL 指令。本文將從語法說明、PHP 實作範例、表單資料寫入三個層面,完整解析資料新增的實務操作。

INSERT INTO 基本語法

標準寫法為指定所有欄位值,順序必須與資料表定義一致:

INSERT INTO table_name VALUES (value1, value2, ...);

實務上建議明確指定欄位名稱,提升可讀性並避免結構變更導致錯誤:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
提醒:SQL 指令不分大小寫,INSERT INTO 與 insert into 效果相同。

PHP 執行 INSERT 指令

早期教學常使用 mysql_query() 函數,但該擴展已於 PHP 7.0 移除。現代專案請改用 PDO 或 mysqli,並搭配預處理語句防範 SQL 注入。

範例:使用 PDO 新增資料(推薦做法)

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES (?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['Peter', 'Griffin', 35]);
    $stmt->execute(['Glenn', 'Quagmire', 33]);

    echo "新增成功,影響列數:" . $stmt->rowCount();
} catch (PDOException $e) {
    die("錯誤:" . $e->getMessage());
}
?>

處理表單提交資料

實際專案中,資料多來自前端表單。以下示範完整流程:

1. 前端表單(HTML)

<form action="insert.php" method="post">
  <label>姓氏:<input type="text" name="firstname" required></label><br>
  <label>名字:<input type="text" name="lastname" required></label><br>
  <label>年齡:<input type="number" name="age" min="1" max="120" required></label><br>
  <button type="submit">送出</button>
</form>

2. 後端處理(insert.php)

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 取得並過濾輸入
    $firstname = trim($_POST['firstname'] ?? '');
    $lastname  = trim($_POST['lastname'] ?? '');
    $age       = (int)($_POST['age'] ?? 0);

    // 簡單驗證
    if ($firstname === '' || $lastname === '' || $age <= 0) {
        die('請填寫完整且正確的資料');
    }

    $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES (?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$firstname, $lastname, $age]);

    echo "1 筆記錄已新增(ID: " . $pdo->lastInsertId() . ")";
} catch (PDOException $e) {
    // 正式環境請記錄錯誤而非直接顯示
    die('資料庫錯誤:' . $e->getMessage());
}
?>

關鍵最佳實務總結

  • 棄用 mysql_* 函數,改用 PDO 或 mysqli
  • 務必使用預處理語句,防止 SQL 注入
  • 驗證與過濾所有外部輸入,不要信任 $_POST 直接入庫
  • 設定 charset=utf8mb4,完整支援 Unicode(含 Emoji)
  • 錯誤處理:開發期顯示錯誤,正式期記錄日誌並回應友善訊息

掌握 INSERT INTO 操作是 PHP 後端開發的入門基石,建議搭配交易(Transaction)機制,於批量寫入或關聯資料操作時確保資料一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved