0Pricing
PHP Academy · บทเรียน

การทำงานกับ PDO

ใช้ PHP Data Objects (PDO) เพื่อโต้ตอบกับฐานข้อมูล

การทำงานกับ PDO เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 6 จากทั้งหมด 6 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 6 บทเรียน

ภาพรวม PDO

การทำงานกับ PDO

ยินดีต้อนรับสู่บทเรียนถัดไป ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีใช้ PDO (วัตถุข้อมูล PHP) เพื่อทำงานกับฐานข้อมูล PDO เป็นวิธีที่ยืดหยุ่นและปลอดภัยสำหรับการเชื่อมต่อและทำงานกับฐานข้อมูล มาเริ่มกันเลย

การทำงานกับ PDO — ภาพประกอบ 1

PDO คืออะไร

PDO คืออะไร

PDO (วัตถุข้อมูล PHP) คือชั้นการเข้าถึงฐานข้อมูลที่มีอินเทอร์เฟซแบบเดียวกันสำหรับการทำงานกับระบบฐานข้อมูลต่าง ๆ โดยรองรับฐานข้อมูลหลากหลายประเภท เช่น MySQL, PostgreSQL, เอสคิวไลต์ และอื่น ๆ

คุณลักษณะสำคัญ:

  • ไม่ขึ้นกับฐานข้อมูล (ทำงานกับฐานข้อมูลได้หลายประเภท)
  • รองรับคำสั่งที่เตรียมไว้ในตัว
  • มีตัวเลือกการจัดการข้อผิดพลาดขั้นสูง

เคล็ดลับ: PDO เป็นตัวเลือกที่ยอดเยี่ยมสำหรับสร้างแอปพลิเคชันเว็บที่ปลอดภัยและรองรับการขยายตัว

การเชื่อมต่อฐานข้อมูลด้วย PDO

การเชื่อมต่อฐานข้อมูลด้วย PDO

หากต้องการเชื่อมต่อฐานข้อมูลโดยใช้ PDO คุณต้องมีสิ่งต่อไปนี้:

  • ชื่อแหล่งข้อมูล (DSN) ซึ่งประกอบด้วยประเภทฐานข้อมูล โฮสต์ และชื่อฐานข้อมูล
  • ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง

ตัวอย่าง:

เคล็ดลับ: ใช้ตัวแปรสภาพแวดล้อมหรือไฟล์การกำหนดค่าเพื่อจัดเก็บข้อมูลรับรองที่ละเอียดอ่อน

<?php
  $dsn = "mysql:host=localhost;dbname=testdb";
  $username = "root";
  $password = "";

  try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully!";
  } catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>

การดำเนินการคำสั่งสอบถาม

การดำเนินการคำสั่งสอบถาม

PDO มีเมธอดหลักสองเมธอดสำหรับดำเนินการคำสั่งสอบถาม:

  • exec(): ใช้สำหรับคำสั่งที่ไม่ส่งคืนผลลัพธ์ (เช่น INSERT, UPDATE)
  • query(): ใช้สำหรับคำสั่งที่ส่งคืนผลลัพธ์ (เช่น SELECT)

ตัวอย่าง:

<?php
  // Insert a record
  $pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");

  // Retrieve records
  $stmt = $pdo->query("SELECT * FROM users");
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
?>

การใช้คำสั่งที่เตรียมไว้

การใช้คำสั่งที่เตรียมไว้

คำสั่งที่เตรียมไว้มีความสำคัญต่อการทำงานกับฐานข้อมูลอย่างปลอดภัยและมีประสิทธิภาพ ตัวอย่าง:

เคล็ดลับ: ใช้ตัวยึดตำแหน่ง (:email) เพื่อป้องกันการแทรกคำสั่ง SQL

<?php
  $sql = "SELECT * FROM users WHERE email = :email";
  $stmt = $pdo->prepare($sql);
  $stmt->execute(["email" => "alice@mail.com"]);
  $user = $stmt->fetch(PDO::FETCH_ASSOC);

  echo "Name: " . $user["name"];
?>

การจัดการข้อผิดพลาดใน PDO

การจัดการข้อผิดพลาดใน PDO

PDO รองรับโหมดการจัดการข้อผิดพลาดสามโหมด:

  • ERRMODE_SILENT: ต้องตรวจสอบข้อผิดพลาดด้วยตนเอง
  • ERRMODE_WARNING: ข้อผิดพลาดจะทำให้เกิดคำเตือนของ PHP
  • ERRMODE_EXCEPTION: ข้อผิดพลาดจะส่งข้อยกเว้น (แนะนำ)

ตัวอย่าง:

<?php
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  try {
    $pdo->exec("INVALID SQL STATEMENT");
  } catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
  }
?>

การดึงข้อมูล

การดึงข้อมูล

PDO มีเมธอดสำหรับดึงข้อมูลหลายเมธอด:

  • fetch(): ดึงข้อมูลหนึ่งแถว
  • fetchAll(): ดึงข้อมูลทุกแถว
  • fetchColumn(): ดึงค่าจากหนึ่งคอลัมน์

ตัวอย่าง:

<?php
  $stmt = $pdo->query("SELECT name FROM users");
  while ($name = $stmt->fetchColumn()) {
    echo "User: " . $name . "<br>";
  }
?>

การจัดการธุรกรรม

การจัดการธุรกรรม

ใช้ธุรกรรมเพื่อดำเนินการคำสั่งหลายรายการให้เป็นหน่วยเดียว ตัวอย่าง:

เคล็ดลับ: ใช้ธุรกรรมเพื่อให้มั่นใจว่าข้อมูลยังคงถูกต้องครบถ้วน

<?php
  try {
    $pdo->beginTransaction();

    $pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
    $pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");

    $pdo->commit();
    echo "Transaction successful!";
  } catch (PDOException $e) {
    $pdo->rollBack();
    echo "Transaction failed: " . $e->getMessage();
  }
?>

ทำได้ยอดเยี่ยม

ทำได้ยอดเยี่ยม

ขอแสดงความยินดี คุณได้เรียนรู้วิธีใช้ PDO เพื่อทำงานกับฐานข้อมูลอย่างปลอดภัยและมีประสิทธิภาพแล้ว รวมถึงการเชื่อมต่อ การดำเนินการคำสั่งสอบถาม และการจัดการธุรกรรม ในบทเรียนถัดไป เราจะสำรวจเทคนิคการเขียนคำสั่ง SQL ขั้นสูงด้วย PDO มาเขียนโค้ดกันต่อ

การทำงานกับ PDO — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “การทำงานกับ PDO” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทำงานกับ PDO” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 6 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทำงานกับ PDO”

ใช้ PHP Data Objects (PDO) เพื่อโต้ตอบกับฐานข้อมูล คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 6 จากทั้งหมด 6 บทเรียน

บทเรียน “การทำงานกับ PDO” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่ฐานข้อมูล
  2. เชื่อมต่อกับฐานข้อมูล MySQL
  3. การจัดการตาราง
  4. การดำเนินการ CRUD
  5. คำสั่งที่เตรียมไว้
  6. การทำงานกับ PDO
← กลับไปที่ PHP Academy