PDOStatement :: fetchAll
คู่มือการใช้งาน PHP PDO อ้างอิง
PDOStatement :: fetchAll - ส่งกลับอาร์เรย์ของแถวทั้งหมดในชุดผลลัพธ์ที่ (PHP 5> = 5.1.0, PECL PDO> = 0.1.0)
คำอธิบาย
ไวยากรณ์
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
พารามิเตอร์
fetch_style
วิธีการควบคุมบรรทัดถัดไปจะถูกส่งกลับไปยังผู้โทร ค่านี้ต้อง PDO :: FETCH_ * ค่าคงที่ในชุดค่าเริ่มต้นสำหรับ PDO :: ATTR_DEFAULT_FETCH_MODE (ค่าเริ่มต้น PDO :: FETCH_BOTH)
หากต้องการกลับชุดผลลัพธ์ที่มีอาร์เรย์ของค่าทั้งหมดในคอลัมน์เดียวคุณจะต้องระบุ PDO :: FETCH_COLUMN รับคอลัมน์ที่ต้องการโดยระบุพารามิเตอร์คอลัมน์ดัชนี
ต้องการที่จะได้รับผลการตั้งค่าของค่าไม่ซ้ำกันในคอลัมน์เดียวที่คุณจะต้อง PDO :: FETCH_COLUMN และ PDO :: บิต FETCH_UNIQUE หรือ
หากต้องการกลับคอลัมน์ขึ้นอยู่กับค่าที่ระบุของอาเรย์จัดกลุ่มเราต้อง PDO :: FETCH_COLUMN และ PDO :: FETCH_GROUP บิตหรือ
fetch_argument
พารามิเตอร์ Fetch_style ขึ้นอยู่กับค่าของพารามิเตอร์นี้มีความหมายที่แตกต่างกัน:
PDO::FETCH_COLUMN
: กลับสู่ศูนย์คอลัมน์การจัดทำดัชนีPDO::FETCH_CLASS
: คืนตัวอย่างของการเรียนที่ระบุคอลัมน์การทำแผนที่แต่ละแถวที่สอดคล้องกันในชั้นเรียนชื่อแอตทริบิวต์PDO::FETCH_FUNC
: คอลัมน์ของแต่ละแถวเป็นอาร์กิวเมนต์ฟังก์ชั่นที่ระบุและผลตอบแทนหลังจากเรียกฟังก์ชั่น
ctor_args
เมื่อพารามิเตอร์ fetch_style PDO :: FETCH_CLASS ตั้งแต่ความหมายของพารามิเตอร์ระดับนวกรรมิก
ราคาย้อนกลับ
PDOStatement :: fetchAll () ส่งกลับชุดผลลัพธ์ที่มีอาร์เรย์ของทุกสายที่เหลือ แถวของอาร์เรย์นี้แต่ละคนเป็นอาร์เรย์หรือค่าคอลัมน์หรือแอตทริบิวต์วัตถุสอดคล้องกับชื่อแต่ละคอลัมน์
ใช้วิธีการนี้เพื่อให้ได้ชุดผลขนาดใหญ่จะทำให้เกิดภาระระบบและอาจใช้เวลามากของทรัพยากรเครือข่าย ดึงข้อมูลทั้งหมดและการใช้งาน PHP ในการทำงานมันจะดีกว่าที่จะต้องพิจารณาการใช้บริการฐานข้อมูลในการจัดการกับผลการตั้งค่า ยกตัวอย่างเช่นก่อนและดึงข้อมูลผ่านกระบวนการ PHP ในการกำหนดผลกับสถานที่และคำสั่ง ORDER BY ใน SQL
ตัวอย่าง
ได้รับทั้งหมดของแถวที่เหลืออยู่ในชุดผลลัพธ์
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
การส่งออกของตัวอย่างข้างต้นคือ
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
เป็นผลเดียวตั้งค่าทั้งหมด
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการที่จะมีสมาธิผลตอบแทนที่แยกต่างหากจากค่าทั้งหมดผลให้แม้ว่าคำสั่ง SQL ตัวเองอาจจะกลับมาหลายคอลัมน์ต่อแถว
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
การส่งออกของตัวอย่างข้างต้นคือ
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
ตามการจัดกลุ่มแยกต่างหากค่าทั้งหมด
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการที่จะส่งกลับค่าคอลัมน์อาเรย์ศูนย์ระบุขึ้นอยู่กับผลของแพ็คเก็ต อาร์เรย์มีสามปุ่ม: แอปเปิ้ลและลูกแพร์อาร์เรย์กลับมีสองสีที่แตกต่างกันในขณะที่แตงโมกลับอาร์เรย์มีเพียงหนึ่งสี
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
การส่งออกของตัวอย่างข้างต้นคือ
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
แถวในผลแต่ละ instantiate ชั้นเรียน
Liezi ด้านล่างนี้แสดง PDO :: FETCH_CLASS Gets พฤติกรรมสไตล์
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
การส่งออกของตัวอย่างข้างต้นคือ
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
แต่ละบรรทัดเรียกฟังก์ชัน
Liezi ด้านล่างนี้แสดง PDO :: FETCH_FUNC Gets พฤติกรรมสไตล์
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
การส่งออกของตัวอย่างข้างต้นคือ
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }