Les objets larges (LOB)
  À un moment dans votre application, vous pourriez avoir besoin de stocker de
  larges données dans votre base de données. "Large" signifie typiquement
  des données d'environ 4 ko ou plus, bien que certaines bases de données peuvent
  gérer plus de 32 ko avant que les données deviennent "larges". Les objets larges
  peuvent être de nature textuelle ou binaire. PDO vous permet de travailler
  avec ce type de larges données en utilisant le code type
  PDO::PARAM_LOB dans vos appels aux fonctions
   PDOStatement::bindParam() ou
   PDOStatement::bindColumn().
  PDO::PARAM_LOB demande à PDO de transformer les données
  en un flux que vous pourrez manipuler en utilisant
  l'API PHP des flux.
 
Exemple #1 Affichage d'une image depuis une base de données
<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where 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);
header("Content-Type: $type");
fpassthru($lob);
?>
Exemple #2 Insertion d'une image dans une base de données
<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // fonction pour allouer un nouvel ID
// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de 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);
$db->beginTransaction();
$stmt->execute();
$db->commit();
?>
Exemple #3 Insertion d'une image dans une base de données Oracle
<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // fonction pour allouer un nouvel ID
// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de 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->execute();
$stmt->commit();
?>