Je suis en cour de réalisation d'une application pour laquelle certaines des tables contiennent plusieurs BLOB.
En fait, je l'avais écrite avec PostgreSQL en cible, mais il faudrait que ça fonctionne avec les 2. J'ai rendu l'appli (assez) portable, mais je bloque sur un point.
Je vous passe la galère d'insertion de BLOB ou CLOB dans ORACLE avec PHP/PDO, alors que c'est si naturel avec postgresql...
Ca va encore quand il n'y a qu'un seul BLOB, je fait:
Code : Tout sélectionner
<?php
// ....
$cnx = $this->_hcnx->handle(); // un handle de connexion PDO
if ($this->_hcnx->get_driver() == "ORACLE" ) {
$qry =
" update pp_traitement"
." set"
." trt_nombre_traites=:nbre"
." ,trt_termine='Y'"
." ,trt_ts_fin=CURRENT_TIMESTAMP"
." ,trt_commentaire=EMPTY_BLOB()" // --- ça c'est un CLOB ou plutot un BLOB, cf. ci-dessous
." where"
." trt_id=:trt_id"
." RETURNING trt_commentaire INTO :com"
;
$cnx->beginTransaction();
$sth = $cnx->prepare($qry, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->bindValue(':trt_id', $this->_id_traitement);
$sth->bindValue(':nbre', $lignes);
$clob = null;
$sth->bindParam(':com', $clob, PDO::PARAM_LOB);
$sth->execute();
fwrite( $clob, nl2br($message));
fclose( $clob );
$cnx->commit();
}
// ....
?>
je ne vois pas comment gérer la partie
Code : Tout sélectionner
<?php
." RETURNING trt_commentaire INTO :com"
?>L'un d'entre vous a-t-il été confronté à ce problème ? A-t-il une solution ?
Merci.