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

การดึงผลลัพธ์ด้วย PDO

ดึงแถวข้อมูลด้วย fetchAll, fetch และโหมดการดึงข้อมูลของ PDO

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

fetch() เทียบกับ fetchAll()

fetch() คืนค่าทีละแถวและเลื่อนเคอร์เซอร์ไปข้างหน้า ส่วน fetchAll() คืนค่าทุกแถวเป็นอาร์เรย์ภายในการเรียกครั้งเดียว

fetch() ในลูป

เหมาะสำหรับชุดผลลัพธ์ขนาดใหญ่ เพราะประมวลผลทีละแถวโดยไม่โหลดข้อมูลทั้งหมดไว้ในหน่วยความจำ

<?php
$stmt = $pdo->query("SELECT id, name FROM users");
while ($row = $stmt->fetch()) {
    echo $row["id"]." - ".$row["name"]."\n";
}

fetchAll()

คืนค่าทุกแถวพร้อมกัน สะดวกสำหรับชุดผลลัพธ์ขนาดเล็ก

<?php
$stmt = $pdo->query("SELECT * FROM products ORDER BY price");
$products = $stmt->fetchAll();

FETCH_ASSOC

คืนค่าแถวเป็นอาร์เรย์แบบเชื่อมโยง โดยใช้ชื่อคอลัมน์เป็นคีย์ เป็นโหมดการดึงข้อมูลที่ใช้กันบ่อยที่สุด

<?php
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// $row["email"], $row["name"]

FETCH_OBJ

คืนค่าแถวเป็นอ็อบเจ็กต์ stdClass และเข้าถึงคอลัมน์ในรูปแบบคุณสมบัติ

<?php
$stmt->setFetchMode(PDO::FETCH_OBJ);
$row = $stmt->fetch();
echo $row->email;

FETCH_CLASS

เติมข้อมูลแถวลงในอินสแตนซ์ของคลาสที่กำหนดโดยตรง

<?php
$stmt->setFetchMode(PDO::FETCH_CLASS, User::class);
$users = $stmt->fetchAll(); // array of User objects

fetchColumn()

ดึงค่าคอลัมน์เดียวจากแถวถัดไป เหมาะสำหรับคำสั่งค้นหาที่ใช้ COUNT

<?php
$count = $pdo->query("SELECT COUNT(*) FROM orders")->fetchColumn();
echo "Total orders: ".$count;

FETCH_KEY_PAIR

คืนค่าเป็นอาร์เรย์แบบเชื่อมโยง โดยคอลัมน์แรกเป็นคีย์และคอลัมน์ที่สองเป็นค่า เหมาะอย่างยิ่งสำหรับการค้นหาความสัมพันธ์ระหว่าง id กับชื่อ

<?php
$map = $pdo->query("SELECT id, name FROM categories")
           ->fetchAll(PDO::FETCH_KEY_PAIR);
// $map[1] = "Electronics", $map[2] = "Books"

FETCH_UNIQUE

FETCH_UNIQUE จัดทำดัชนีผลลัพธ์ด้วยคอลัมน์แรก ทำให้รายการซ้ำถูกตัดออก

FETCH_GROUP

FETCH_GROUP จัดกลุ่มแถวตามค่าของคอลัมน์แรก เหมาะสำหรับความสัมพันธ์แบบหนึ่งต่อหลาย

closeCursor()

ไดรเวอร์บางชนิดกำหนดให้เรียกใช้ closeCursor() กับคำสั่งหนึ่งก่อนเรียกใช้คำสั่งค้นหาอื่นบนการเชื่อมต่อเดียวกัน

ผลลัพธ์ว่าง

fetch() จะคืนค่า false เมื่อไม่มีแถวเหลืออยู่ ควรตรวจสอบเสมอ: if ($row === false)

ตรวจสอบอย่างรวดเร็ว

เมธอดใดคืนค่าคอลัมน์เดียวจากหนึ่งแถว

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

บทเรียน “การดึงผลลัพธ์ด้วย PDO” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การดึงผลลัพธ์ด้วย PDO”

ดึงแถวข้อมูลด้วย fetchAll, fetch และโหมดการดึงข้อมูลของ PDO คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “การดึงผลลัพธ์ด้วย PDO” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การเชื่อมต่อ MySQL ด้วย PDO
  2. คำสั่งที่เตรียมไว้และการผูกค่า
  3. การดึงผลลัพธ์ด้วย PDO
  4. ทรานแซกชันด้วย PDO
← กลับไปที่ PHP Academy