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
<?php
    echo "สวัสดีชาวโลก";   // แสดงข้อความออกหน้าเว็บ
?>

<!-- แทรกใน HTML ได้ -->
<h1><?php echo "ยินดีต้อนรับ"; ?></h1>
• <?php เปิด ... ?> ปิด • echo ใช้แสดงผล • ทุกคำสั่งจบด้วย ; (semicolon) • // คือคอมเมนต์บรรทัดเดียว, /* */ คอมเมนต์หลายบรรทัด ═══════════════════════════════════════ 📦 3. ตัวแปรและชนิดข้อมูล ═══════════════════════════════════════ ตัวแปรใน PHP ขึ้นต้นด้วย $ เสมอ
php
<?php
$name = "สมชาย";        // String (ข้อความ)
$age = 25;              // Integer (จำนวนเต็ม)
$price = 99.50;         // Float (ทศนิยม)
$isActive = true;       // Boolean (จริง/เท็จ)

echo $name;             // สมชาย
echo "อายุ " . $age;    // ต่อข้อความด้วยจุด (.)
echo "ชื่อ $name อายุ $age";  // แทรกตัวแปรใน "..." ได้
?>
═══════════════════════════════════════ ➕ 4. ตัวดำเนินการ (Operators) ═══════════════════════════════════════
php
<?php
// คำนวณ
$sum = 5 + 3;      // 8
$mod = 10 % 3;     // 1 (เศษจากการหาร)

// ต่อข้อความ
$full = "สม" . "ชาย";   // สมชาย

// เปรียบเทียบ (คืน true/false)
// ==  เท่ากัน (ค่า)
// === เท่ากันและชนิดเดียวกัน (แนะนำ)
// !=  ไม่เท่ากัน,  >  <  >=  <=

// ตรรกะ: &&(และ)  ||(หรือ)  !(ไม่)
?>
═══════════════════════════════════════ 🔀 5. เงื่อนไขและการวนซ้ำ ═══════════════════════════════════════ if / else:
php
<?php
$score = 75;

if ($score >= 80) {
    echo "เกรด A";
} elseif ($score >= 70) {
    echo "เกรด B";
} else {
    echo "ต้องพยายามอีก";
}
?>
Loop (for และ foreach):
php
<?php
// for วนตามจำนวนรอบ
for ($i = 1; $i <= 5; $i++) {
    echo "รอบที่ $i <br>";
}

// while วนขณะเงื่อนไขจริง
$n = 0;
while ($n < 3) {
    echo $n;
    $n++;
}
?>
═══════════════════════════════════════ 📚 6. Array (อาร์เรย์) ═══════════════════════════════════════
php
<?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
<?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 (ฟอร์ม):
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
<?php
// รับค่าจากฟอร์มที่ส่งแบบ POST
$username = $_POST["username"];
$password = $_POST["password"];

// ตรวจสอบก่อนใช้เสมอ (กันค่าว่าง)
if (!empty($username)) {
    echo "สวัสดีคุณ " . htmlspecialchars($username);
} else {
    echo "กรุณากรอกชื่อผู้ใช้";
}
?>
*** ความปลอดภัย: ใช้ htmlspecialchars() กันโค้ดอันตราย (XSS) เสมอ *** ═══════════════════════════════════════ 🗄️ 9. เชื่อมต่อฐานข้อมูล MySQL (PDO) ═══════════════════════════════════════
php
<?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
<?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 เล็ก ๆ (เพิ่ม-อ่าน-แก้-ลบ) จะเข้าใจภาพรวมทันที 🐘