การดึงผลลัพธ์ด้วย 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 objectsfetchColumn()
ดึงค่าคอลัมน์เดียวจากแถวถัดไป เหมาะสำหรับคำสั่งค้นหาที่ใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเชื่อมต่อ MySQL ด้วย PDO
- คำสั่งที่เตรียมไว้และการผูกค่า
- การดึงผลลัพธ์ด้วย PDO
- ทรานแซกชันด้วย PDO