Bruno Friedmann wrote:
> Hi all,
>
> actually working with ZF1.5 PR
> I'm facing about a simple trouble : I need to capture the content of a binary
> field from a postgresql db.
>
> with pdo there no trouble if you use the good param for column
> Working code with pdo croquis is a bytea field
>
> $str_dsn = 'pgsql:host=127.0.0.1;port=5432;dbname=sample';
> try {
> $dbh = new PDO($str_dsn, $user='sample', $pass='sosimple');
> } catch (PDOException $e) {
> print "Error No connexion !: " . $e->getMessage() . "<br />";
> die();
> }
> try{
> $cpt=1;
> $stmt = $dbh->prepare("SELECT no_point,croquis from \"Vue_PFP\" WHERE
> no_point=? limit 1");
> if ($stmt->execute(array('16220197'))) {
> $stmt->bindColumn(1, $no_point, PDO::PARAM_STR, 256);
> $stmt->bindColumn(2, $croquis, PDO::PARAM_LOB);
> $stmt->fetch(PDO::FETCH_BOUND);
> fpassthru($croquis);
> $cpt++;
> }
> $dbh = null;
> } catch (PDOException $e) {
> print "Error!: " . $e->getMessage() . "<br />";
> die();
> }
>
> Now I want the same in ZF but only obtain a ressource id ...
>
> $this->_pt_num = '16065420';
> // First we check we have always the db object from registry
> if ( (Zend_Registry::isRegistered('db')) && (
> Zend_Registry::get('db') instanceof Zend_Db_Adapter_Abstract) ) {
> $this->_db = Zend_Registry::get('db');
> }else{
> throw new Zend_Exception('db object does not implement
> Zend_Db_Adapter_Abstract');
> }
> try{
> $select = $this->_db->select()
>
> ->from($this->_tbl,array('croquis'))
> ->where('croquis_id =
> ?',$this->_pt_num);
>
> $stmt = $select->query();
> //$stmt->setFetchMode(Zend_Db::FETCH_LOB); ---
> $row = $stmt->fetchAll();
> $this->_croquis = $row->croquis;
> } catch (Zend_Db_Adapter_Exception $e) {
> // perhaps a failed login credential, or
> perhaps the RDBMS is not running
> echo "ZDBE somthing goes very wrong ".$e;
> } catch (Zend_Exception $e) {
> // perhaps factory() failed to load the
> specified Adapter class
> echo "ZE somthing goes very wrong ".$e;
> }
>
> array(1) { [0]=> object(stdClass)#37 (1) { ["croquis"]=> resource(122) of
> type (stream) } }
>
> How can I do this one ???
>
> Thanks for the help
>
>
ok awser to myself ... this one work as espected ...
try{
$this->_db->setFetchMode(Zend_Db::FETCH_OBJ);
$sql = $this->_db->quoteInto("SELECT * FROM
".$this->_tbl." WHERE croquis_id = ?", $this->_pt_num);
$row_croquis = $this->_db->fetchRow($sql);
$this->_db->closeConnection();
} catch (Zend_Db_Exception $e) {
// perhaps a failed login credential, or perhaps the RDBMS
is not running
throw $e;
} catch (Zend_Exception $e) {
// perhaps factory() failed to load the specified Adapter
class
throw "Exception Factory Error : ".$e;
}
fpassthru ($row_croquis->croquis);
;-)
--
Bruno Friedmann [EMAIL PROTECTED]
Ioda-Net Sàrl - www.ioda-net.ch
2830 Vellerat - Switzerland
Tél : ++41 32 435 7171
Fax : ++41 32 435 7172
gsm : ++41 78 802 6760
C'est Facile et Cool d'Évoluer en ligne : www.cfcel.com