สวัสดีครับนักเรียน จากตอนที่แล้ว เราได้รู้จัก PHP และลองเขียนโค้ดเบื้องต้นกันไปแล้ว แต่เว็บที่ “ใช้งานได้จริง” จะต้องมีที่เก็บข้อมูล เหมือนสมองของระบบนั่นเอง
บทนี้ครูจะพาทุกคนสร้างการเก็บข้อมูล (Database) แล้วเชื่อม PHP เข้ากับ MySQL แบบที่ใช้ได้ในงานจริง เป็นก้าวสำคัญก่อนทำระบบ Login ระบบสมาชิก หรือโปรเจกต์จบเลยครับ
http://localhost/phpmyadmin/my_basic_dbutf8mb4_general_ciจุดที่เด็กชอบลืมคือ Collation ถ้าไม่ตั้งเป็น utf8mb4 ภาษาไทยจะเพี้ยนทันที!
| ชื่อคอลัมน์ | ประเภท | ความยาว | คุณสมบัติ |
|---|---|---|---|
| id | INT | 11 | Primary Key, Auto Increment |
| username | VARCHAR | 50 | - |
| VARCHAR | 100 | - | |
| created_at | TIMESTAMP | - | Default CURRENT_TIMESTAMP |
ฟิลด์ id ควรเป็น INT + Auto Increment เสมอ เพราะใช้เป็นรหัสอ้างอิงข้อมูลได้ดีที่สุด
ครูอยากให้ทุกคนทำงานแบบมืออาชีพ คือแยกไฟล์เชื่อมต่อออกมาต่างหาก เพื่อไม่ต้องเขียนซ้ำหลายที่
สร้างไฟล์ db_config.php
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db_name = "my_basic_db";
// สร้างการเชื่อมต่อ
$conn = mysqli_connect($host, $user, $pass, $db_name);
// ตรวจสอบ
if (!$conn) {
die("เชื่อมต่อฐานข้อมูลล้มเหลว: " . mysqli_connect_error());
}
// รองรับภาษาไทย
mysqli_set_charset($conn, "utf8mb4");
// สำหรับทดสอบช่วงแรก
echo "เชื่อมต่อฐานข้อมูลสำเร็จ!";
?>จำให้ขึ้นใจ ห้ามเอาไฟล์นี้ไปวางโชว์ใน GitHub แบบ Public เพราะมีข้อมูลรหัสผ่าน!
<?php
require_once 'db_config.php';
echo "<h2>ยินดีต้อนรับสู่ระบบจัดการข้อมูล</h2>";
// ปิดการเชื่อมต่อเมื่อจบงาน
mysqli_close($conn);
?>ครูขอเน้น 2 เรื่อง:
require_once แทน includeเวลาเด็กมาปรึกษาครู 80% มาจาก 4 ข้อนี้เลยครับ
shop_db ตาราง products (id, product_name, price)วันนี้เราได้ก้าวสำคัญมาก ๆ
ตอนหน้าเราจะเริ่ม “ของจริง” > รับข้อมูลจากฟอร์ม > บันทึกลงฐานข้อมูล > แบบปลอดภัยด้วย MySQLi
ใครทำตามได้ถึงตรงนี้ ครูบอกเลยว่าเก่งมากแล้วครับ
แล้วเจอกันตอนที่ ตอนที่ 3: การเพิ่มข้อมูล (Insert Data) ลงในฐานข้อมูล