• ติดตามบน
ตอนที่ 3: การเพิ่มข้อมูล (Insert Data) ลงในฐานข้อมูล

ตอนที่ 3: การเพิ่มข้อมูล (Insert Data) ลงในฐานข้อมูล

Chalothorn Kosakul 02-02-2026 51

ตอนที่ 3: การเพิ่มข้อมูล (Insert Data) ลงในฐานข้อมูล

สวัสดีครับนักเรียน มาถึงตอนนี้ถือว่าเราเดินมาไกลพอสมควรแล้ว ตอนที่ 2 เราเชื่อม PHP กับ MySQL ได้สำเร็จ แต่ถ้าแค่เชื่อมได้แล้วยังบันทึกข้อมูลไม่ได้ ก็เหมือนมีตู้เอกสารแต่ใส่เอกสารไม่ได้จริงไหมครับ?

บทนี้ครูจะพาทุกคนทำ การรับข้อมูลจากฟอร์ม → ส่งเข้า PHP → บันทึกลงฐานข้อมูล ซึ่งเป็นหัวใจของทุกระบบบนโลกเว็บเลย


วัตถุประสงค์ของบทนี้

  • สร้างฟอร์ม HTML สำหรับรับข้อมูลจากผู้ใช้
  • เข้าใจคำสั่ง SQL INSERT INTO
  • รับข้อมูลผ่าน $_POST แล้วบันทึกด้วย MySQLi
  • รู้จักการป้องกันความผิดพลาดเบื้องต้น
  • มองเห็นโครงสร้างระบบแบบงานจริง

1. สร้างฟอร์มลงทะเบียน (register.php)

ครูอยากให้มองภาพแบบนี้ครับ
> ฟอร์ม = ประตูรับข้อมูล > PHP = คนตรวจเอกสาร > Database = ตู้เก็บเอกสาร

<!DOCTYPE html>
<html lang="th">
<head>
    <meta charset="UTF-8">
    <title>ระบบลงทะเบียน</title>
</head>
<body>

<h2>ลงทะเบียนสมาชิก</h2>

<form action="insert_user.php" method="POST">
    ชื่อผู้ใช้:<br>
    <input type="text" name="username" required><br><br>

    อีเมล:<br>
    <input type="email" name="email" required><br><br>

    <button type="submit">บันทึกข้อมูล</button>
</form>

</body>
</html>

จุดสำคัญที่ครูอยากให้จำ

  • method ต้องเป็น POST เพราะปลอดภัยกว่า GET
  • name ใน input = ชื่อที่ PHP จะเอาไปใช้
  • required ช่วยกรองเบื้องต้นฝั่งผู้ใช้

2. เขียนโค้ดบันทึกข้อมูล (insert_user.php)

ไฟล์นี้คือ การทำงาน รับข้อมูล → ตรวจ → บันทึก

<?php
require_once 'db_config.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // รับค่าและป้องกันอักขระอันตราย
    $user  = mysqli_real_escape_string($conn, $_POST['username']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);

    // คำสั่งเพิ่มข้อมูล
    $sql = "INSERT INTO users (username, email)
            VALUES ('$user', '$email')";

    if (mysqli_query($conn, $sql)) {
        echo "<script>
                alert('บันทึกข้อมูลสำเร็จ!');
                window.location='register.php';
              </script>";
    } else {
        echo "เกิดข้อผิดพลาด: " . mysqli_error($conn);
    }

    mysqli_close($conn);
}
?>

3. อธิบายแบบภาษาครู

  • $_POST คือกล่องพัสดุที่ฟอร์มส่งมาถึง PHP ข้างในมี username และ email
  • mysqli_real_escape_string ป้องกันการพิมพ์อักขระแปลก ๆ มาทำให้ SQL พัง
  • INSERT INTO แปลตรงตัวว่า “นำข้อมูลเข้าไปในตาราง”
  • mysqli_query เหมือนกดปุ่มส่งคำสั่งไปที่ MySQL

* วิธีนี้ยังเป็นระดับเริ่มต้น ของจริงควรใช้ Prepared Statement ซึ่งเราจะเรียนในตอนที่ 6 ครับ


ข้อผิดพลาดที่เด็กเจอบ่อย

  • ลืมตั้ง name ใน input
  • พิมพ์ชื่อตารางไม่ตรงกับใน DB
  • เปิดไฟล์ผิด (เปิด register.php แทน insert_user.php)
  • ลืม require ไฟล์ db_config.php

ครูเจอทุกเทอมจริง ๆ


แบบฝึกหัด

  1. เพิ่มฟิลด์ใหม่
    เพิ่มช่อง “เบอร์โทรศัพท์ (phone)” แก้ทั้งตารางและฟอร์มให้บันทึกได้
  2. ภารกิจท้าทาย
    ตรวจสอบก่อนบันทึกว่า อีเมลนี้มีในระบบหรือยัง ถ้ามี → ให้แจ้งเตือน
  3. ฝึกอ่าน Error
    ลองพิมพ์ชื่อตารางผิด แล้วดูว่าระบบฟ้องว่าอะไร

สรุปจากครูท้ายคาบ

วันนี้เราได้ปลดล็อกสกิลสำคัญมาก

  • รับข้อมูลจากฟอร์มได้
  • เขียนคำสั่ง INSERT เป็น
  • บันทึกข้อมูลลง MySQL ได้จริง

ตอนหน้าเราจะสนุกขึ้นอีก > ดึงข้อมูลออกมาแสดง (SELECT) > ทำตารางรายชื่อสมาชิก > เห็นข้อมูลที่เรากรอกจริง ๆ

ใครทำได้ถึงตรงนี้ ครูบอกเลยว่าเริ่มเป็น “นักพัฒนาเว็บตัวจริง” แล้วครับ
เจอกัน ตอนที่ 4: การดึงข้อมูลออกมาแสดงผล (Select Data) และจัดรูปแบบตาราง

แท็กที่เกี่ยวข้อง :

แชร์บทความนี้