ในบางจุด แอปพลิเคชันอาจจำเป็นต้องจัดเก็บข้อมูล "ขนาดใหญ่" ไว้ในฐานข้อมูล
โดยทั่วไป "ขนาดใหญ่" หมายถึง "ประมาณ 4kb หรือมากกว่า" แม้ว่าบางฐานข้อมูลจะสามารถรองรับข้อมูลได้ถึง 32kb ก่อนที่ข้อมูลจะถึง "ขนาดใหญ่" ก็ตาม วัตถุขนาดใหญ่อาจเป็นข้อความหรือไบนารี่โดยธรรมชาติ
ใช้รหัสประเภท PDO::PARAM_LOB ในการเรียก PDOStatement::bindParam() หรือ PDOStatement::bindColumn()) เพื่อเปิดใช้งาน PDO เพื่อใช้ชนิดข้อมูลขนาดใหญ่
PDO::PARAM_LOB บอกให้ PDO แมปข้อมูลเป็นสตรีมเพื่อให้สามารถจัดการได้โดยใช้ PHP Streams API
ตัวอย่างต่อไปนี้ผูก LOB กับตัวแปร $lob จากนั้นส่งไปยังเบราว์เซอร์โดยใช้ fpassthru() เนื่องจาก LOB แสดงถึงสตรีม จึงสามารถใช้ฟังก์ชันต่างๆ เช่น fgets(), fread() และ stream_get_contents() ได้
<?php$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');$stmt = $db->prepare("select contenttype, imagedata from image when id=?");$stmt- >execute(array($_GET['id']));$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);$stmt->fetch(PDO::FETCH_BOUND);ส่วนหัว("ประเภทเนื้อหา: $type");fpassthru ($ลอบ);?>
ตัวอย่างต่อไปนี้เปิดไฟล์และส่งผ่านตัวจัดการไฟล์ไปยัง PDO เพื่อแทรกเป็น LOB PDO ช่วยให้ฐานข้อมูลสามารถรับเนื้อหาไฟล์ได้อย่างมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้
<?php$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');$stmt = $db->prepare("insert into images (id, contenttype, imagedata) ค่า (?, ?, ?)");$id = get_new_id(); // เรียกใช้ฟังก์ชันเพื่อกำหนด ID ใหม่ // สมมติว่าไฟล์ที่อัปโหลดได้รับการประมวลผล // ซึ่งสามารถทำได้ใน PHP ข้อมูลเพิ่มเติมพบในเอกสารประกอบ $fp = fopen($_FILES['file']['tmp_name'], 'rb');$stmt->bindParam(1, $id);$stmt->bindParam(2, $ _FILES['ไฟล์']['ประเภท']);$stmt->bindParam(3, $fp, PDO::PARAM_LOB);$db->beginTransaction();$stmt->execute();$db->กระทำ();?>
Oracle มีความแตกต่างเล็กน้อยในการแทรก lob จากไฟล์ ต้องทำการแทรกหลังจากธุรกรรม มิฉะนั้น LOB ที่ถูกแทรกใหม่จะถูกคอมมิตโดยปริยายโดยมีความยาว 0 เมื่อดำเนินการแบบสอบถาม:
<?php$db = new PDO('oci:', 'scott', 'tiger');$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " ."VALUES (?, ?, EMPTY_BLOB()) การส่งคืนข้อมูลรูปภาพเป็น ?");$id = get_new_id(); // เรียกใช้ฟังก์ชันเพื่อกำหนด ID ใหม่ // สมมติว่ากำลังจัดการอัพโหลดไฟล์ // ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบ PHP $fp = fopen($_FILES['file']['tmp_name'], 'rb');$stmt->bindParam(1, $id ) ;$stmt->bindParam(2, $_FILES['file']['type']);$stmt->bindParam(3, $fp, PDO::PARAM_LOB);$stmt->beginTransaction();$stmt->ดำเนินการ();$stmt->กระทำ();?>