PHP เป็นภาษายอดนิยมสำหรับทำเว็บฝั่งเซิร์ฟเวอร์ (Backend) เว็บดัง ๆ อย่าง WordPress และ Facebook ยุคแรกก็ใช้ PHP บทความนี้จะปูพื้นฐาน PHP ให้คุณเขียนเว็บที่ประมวลผลข้อมูลและเชื่อมฐานข้อมูลได้จริง
═══════════════════════════════════════
📌 1. PHP คืออะไร
═══════════════════════════════════════
PHP ย่อมาจาก PHP: Hypertext Preprocessor
เป็นภาษาโปรแกรมที่ทำงานฝั่ง "เซิร์ฟเวอร์" (Server-side)
ต่างจาก JavaScript ที่ทำงานในเบราว์เซอร์
• PHP ประมวลผลบนเซิร์ฟเวอร์ แล้วส่ง HTML กลับมาที่เบราว์เซอร์
• ใช้ทำระบบล็อกอิน จัดการข้อมูล เชื่อมฐานข้อมูล MySQL
• ไฟล์ PHP มีนามสกุล .php และต้องรันผ่านเซิร์ฟเวอร์ (เช่น XAMPP)
═══════════════════════════════════════
✏️ 2. โครงสร้างพื้นฐาน
═══════════════════════════════════════
โค้ด PHP เขียนภายในแท็ก <?php ... ?> แทรกในไฟล์ HTML ได้
<?php
echo "สวัสดีชาวโลก"; // แสดงข้อความออกหน้าเว็บ
?>
<!-- แทรกใน HTML ได้ -->
<h1><?php echo "ยินดีต้อนรับ"; ?></h1>
• <?php เปิด ... ?> ปิด
• echo ใช้แสดงผล
• ทุกคำสั่งจบด้วย ; (semicolon)
• // คือคอมเมนต์บรรทัดเดียว, /* */ คอมเมนต์หลายบรรทัด
═══════════════════════════════════════
📦 3. ตัวแปรและชนิดข้อมูล
═══════════════════════════════════════
ตัวแปรใน PHP ขึ้นต้นด้วย $ เสมอ
<?php
$name = "สมชาย"; // String (ข้อความ)
$age = 25; // Integer (จำนวนเต็ม)
$price = 99.50; // Float (ทศนิยม)
$isActive = true; // Boolean (จริง/เท็จ)
echo $name; // สมชาย
echo "อายุ " . $age; // ต่อข้อความด้วยจุด (.)
echo "ชื่อ $name อายุ $age"; // แทรกตัวแปรใน "..." ได้
?>
═══════════════════════════════════════
➕ 4. ตัวดำเนินการ (Operators)
═══════════════════════════════════════
<?php
// คำนวณ
$sum = 5 + 3; // 8
$mod = 10 % 3; // 1 (เศษจากการหาร)
// ต่อข้อความ
$full = "สม" . "ชาย"; // สมชาย
// เปรียบเทียบ (คืน true/false)
// == เท่ากัน (ค่า)
// === เท่ากันและชนิดเดียวกัน (แนะนำ)
// != ไม่เท่ากัน, > < >= <=
// ตรรกะ: &&(และ) ||(หรือ) !(ไม่)
?>
═══════════════════════════════════════
🔀 5. เงื่อนไขและการวนซ้ำ
═══════════════════════════════════════
if / else:
<?php
$score = 75;
if ($score >= 80) {
echo "เกรด A";
} elseif ($score >= 70) {
echo "เกรด B";
} else {
echo "ต้องพยายามอีก";
}
?>
Loop (for และ foreach):
<?php
// for วนตามจำนวนรอบ
for ($i = 1; $i <= 5; $i++) {
echo "รอบที่ $i <br>";
}
// while วนขณะเงื่อนไขจริง
$n = 0;
while ($n < 3) {
echo $n;
$n++;
}
?>
═══════════════════════════════════════
📚 6. Array (อาร์เรย์)
═══════════════════════════════════════
<?php
// Array แบบมี index
$fruits = ["แอปเปิล", "กล้วย", "ส้ม"];
echo $fruits[0]; // แอปเปิล
echo count($fruits); // 3 (จำนวนสมาชิก)
// วนแสดงทุกตัวด้วย foreach
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
// Associative Array (คีย์-ค่า)
$person = [
"name" => "สมชาย",
"age" => 25
];
echo $person["name"]; // สมชาย
foreach ($person as $key => $value) {
echo "$key : $value <br>";
}
?>
═══════════════════════════════════════
🔧 7. ฟังก์ชัน (Function)
═══════════════════════════════════════
<?php
// ประกาศฟังก์ชัน
function add($a, $b) {
return $a + $b;
}
echo add(5, 3); // 8
// ฟังก์ชันมีค่าเริ่มต้น
function greet($name = "เพื่อน") {
return "สวัสดี $name";
}
echo greet("สมหญิง"); // สวัสดี สมหญิง
echo greet(); // สวัสดี เพื่อน
?>
═══════════════════════════════════════
📝 8. รับข้อมูลจากฟอร์ม (Form Handling)
═══════════════════════════════════════
ไฟล์ HTML (ฟอร์ม):
<form action="process.php" method="POST">
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">เข้าสู่ระบบ</button>
</form>
ไฟล์ process.php (รับข้อมูล):
<?php
// รับค่าจากฟอร์มที่ส่งแบบ POST
$username = $_POST["username"];
$password = $_POST["password"];
// ตรวจสอบก่อนใช้เสมอ (กันค่าว่าง)
if (!empty($username)) {
echo "สวัสดีคุณ " . htmlspecialchars($username);
} else {
echo "กรุณากรอกชื่อผู้ใช้";
}
?>
*** ความปลอดภัย: ใช้ htmlspecialchars() กันโค้ดอันตราย (XSS) เสมอ ***
═══════════════════════════════════════
🗄️ 9. เชื่อมต่อฐานข้อมูล MySQL (PDO)
═══════════════════════════════════════
<?php
// เชื่อมต่อฐานข้อมูลด้วย PDO (แนะนำ)
$host = "localhost";
$db = "mydatabase";
$user = "root";
$pass = "";
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "เชื่อมต่อสำเร็จ";
} catch (PDOException $e) {
echo "เชื่อมต่อล้มเหลว: " . $e->getMessage();
}
?>
ดึงข้อมูลแบบปลอดภัย (Prepared Statement):
<?php
// ดึงข้อมูลผู้ใช้ตาม id (กัน SQL Injection ด้วย ?)
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo $user["name"];
// ดึงหลายแถว
$stmt = $pdo->query("SELECT * FROM users");
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($users as $u) {
echo $u["name"] . "<br>";
}
?>
*** สำคัญ: ใช้ Prepared Statement (?) เสมอ เพื่อกัน SQL Injection ***
═══════════════════════════════════════
✅ 10. สรุปและเส้นทางต่อไป
═══════════════════════════════════════
• ตัวแปรขึ้นต้นด้วย $ และทุกคำสั่งจบด้วย ;
• echo แสดงผล, . ต่อข้อความ
• รับฟอร์มด้วย $_POST / $_GET และตรวจสอบข้อมูลเสมอ
• เชื่อม MySQL ด้วย PDO + Prepared Statement (ปลอดภัยกว่า)
• ใช้ htmlspecialchars() กัน XSS และ ? กัน SQL Injection
เส้นทางต่อไปหลังพื้นฐานแน่น:
PHP พื้นฐาน → PDO/MySQL → OOP (คลาส/ออบเจกต์)
→ MVC → Laravel Framework (ทำเว็บใหญ่ได้เร็ว)
จำไว้: PHP + MySQL คือคู่หูสร้างเว็บไดนามิกที่ทรงพลัง
ลองทำระบบ CRUD เล็ก ๆ (เพิ่ม-อ่าน-แก้-ลบ) จะเข้าใจภาพรวมทันที 🐘