PDOStatement :: rowCount
คู่มือการใช้งาน PHP PDO อ้างอิง
PDOStatement :: rowCount - ส่งกลับคำสั่ง SQL ที่มีอยู่ในจำนวนของแถวได้รับผลกระทบ (PHP 5> = 5.1.0, PECL PDO> = 0.1.0)
คำอธิบาย
ไวยากรณ์
int PDOStatement::rowCount ( void )
PDOStatement :: rowCount () ส่งกลับลบแทรกหรือคำสั่ง UPDATE ได้รับผลกระทบจำนวนเส้นดำเนินการโดยวัตถุ PDOStatement ที่สอดคล้องกัน
หากคำสั่ง SQL ที่ดำเนินการโดย PDOStatement เกี่ยวข้องเป็นคำสั่ง SELECT ข้อมูลบางอย่างอาจจะกลับมาจำนวนแถวกลับโดยคำสั่งนี้ แต่วิธีนี้ไม่สามารถรับประกันได้ว่าข้อมูลทั้งหมดถูกต้องและสำหรับการใช้งานแบบพกพาไม่ควรพึ่งพาวิธีการนี้
ราคาย้อนกลับ
ส่งกลับจำนวนแถว
ตัวอย่าง
ส่งกลับจำนวนของแถวที่ถูกลบ
PDOStatement :: rowCount () ผลตอบแทนจำนวนแถวรับผลกระทบจากลบแทรกปรับปรุงหรือคำสั่งที่ส่งผลกระทบต่อ
<?php /* 从 FRUIT 数据表中删除所有行 */ $del = $dbh->prepare('DELETE FROM fruit'); $del->execute(); /* 返回被删除的行数 */ print("Return number of rows that were deleted:\n"); $count = $del->rowCount(); print("Deleted $count rows.\n"); ?>
เอาท์พุทตัวอย่างข้างต้น:
Return number of rows that were deleted: Deleted 9 rows.
คำนวณจากจำนวนแถวกลับโดยคำสั่ง SELECT
สำหรับฐานข้อมูลส่วนใหญ่ PDOStatement :: rowCount () ไม่กลับจำนวนแถวรับผลกระทบจากคำสั่ง SELECT วิธีทางเลือกคือการใช้ PDO :: แบบสอบถาม () และตั้งใจที่จะออกคำสั่ง SELECT ในสภาพเดิมแสดงออก SELECT COUNT (*) คำสั่งและจากนั้นใช้ PDOStatement :: fetchColumn () เพื่อให้ได้จำนวนแถวกลับ เพื่อให้โปรแกรมประยุกต์ที่สามารถดำเนินการได้อย่างถูกต้อง
<?php $sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100"; if ($res = $conn->query($sql)) { /* 检查符合 SELECT 语句的行数 */ if ($res->fetchColumn() > 0) { /* 发出一条真正的 SELECT 语句并操作返回的结果 */ $sql = "SELECT name FROM fruit WHERE calories > 100"; foreach ($conn->query($sql) as $row) { print "Name: " . $row['NAME'] . "\n"; } } /* 没有匹配的行 -- 执行其他 */ else { print "No rows matched the query."; } } $res = null; $conn = null; ?>
เอาท์พุทตัวอย่างข้างต้นคือ
apple banana orange pear