ตอนที่ 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
ครูเจอทุกเทอมจริง ๆ
แบบฝึกหัด
- เพิ่มฟิลด์ใหม่
เพิ่มช่อง “เบอร์โทรศัพท์ (phone)” แก้ทั้งตารางและฟอร์มให้บันทึกได้ - ภารกิจท้าทาย
ตรวจสอบก่อนบันทึกว่า อีเมลนี้มีในระบบหรือยัง ถ้ามี → ให้แจ้งเตือน - ฝึกอ่าน Error
ลองพิมพ์ชื่อตารางผิด แล้วดูว่าระบบฟ้องว่าอะไร
สรุปจากครูท้ายคาบ
วันนี้เราได้ปลดล็อกสกิลสำคัญมาก
- รับข้อมูลจากฟอร์มได้
- เขียนคำสั่ง INSERT เป็น
- บันทึกข้อมูลลง MySQL ได้จริง
ตอนหน้าเราจะสนุกขึ้นอีก > ดึงข้อมูลออกมาแสดง (SELECT) > ทำตารางรายชื่อสมาชิก > เห็นข้อมูลที่เรากรอกจริง ๆ
ใครทำได้ถึงตรงนี้ ครูบอกเลยว่าเริ่มเป็น “นักพัฒนาเว็บตัวจริง” แล้วครับ
เจอกัน ตอนที่ 4: การดึงข้อมูลออกมาแสดงผล (Select Data) และจัดรูปแบบตาราง
