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

Reply via email to