Source for file jDbResultSet.class.php

Documentation is available at jDbResultSet.class.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage db
  5. @author      Laurent Jouanneau
  6. @contributor
  7. @copyright  2005-2006 Laurent Jouanneau
  8. @link      http://www.jelix.org
  9. @licence    http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  10. */
  11.  
  12. /**
  13.  * represent a statement
  14.  * @package  jelix
  15.  * @subpackage db
  16.  */
  17. abstract class jDbResultSet implements Iterator {
  18.  
  19.     const FETCH_CLASS 8;
  20.  
  21.     protected $_idResult=null;
  22.     protected $_fetchMode = 0;
  23.     protected $_fetchModeParam = '';
  24.  
  25.     function __construct (  $idResult){
  26.         $this->_idResult = $idResult;
  27.     }
  28.  
  29.     function __destruct(){
  30.         if ($this->_idResult){
  31.             $this->_free ();
  32.             $this->_idResult = null;
  33.         }
  34.     }
  35.  
  36.     public function id(return $this->_idResult}
  37.  
  38.     public function setFetchMode($fetchmode$param=null){
  39.         $this->_fetchMode = $fetchmode;
  40.         $this->_fetchModeParam =$param;
  41.     }
  42.     /**
  43.      * fetch a result. The result is returned as an object.
  44.      * @return object|booleanresult object or false if ther is no more result
  45.      */
  46.     public function fetch(){
  47.         $result $this->_fetch ();
  48.         if($result && $this->_fetchMode == self::FETCH_CLASS && !($result instanceof $this->_fetchModeParam) ){
  49.             $values get_object_vars ($result);
  50.             $o $this->_fetchModeParam;
  51.             $result new $o();
  52.             foreach $values as $k=>$value){
  53.                 $result->$k $value;
  54.             }
  55.         }
  56.         return $result;
  57.     }
  58.  
  59.     /**
  60.      * Return all results in an array. Each result is an object.
  61.      * @return array 
  62.      */
  63.     public function fetchAll(){
  64.         $result=array();
  65.         while($res =  $this->fetch ()){
  66.             $result[$res;
  67.         }
  68.         return $result;
  69.     }
  70.  
  71.     /**
  72.      * not implemented
  73.      */
  74.     public function getAttribute($attr){return null;}
  75.     /**
  76.      * not implemented
  77.      */
  78.     public function setAttribute($attr$value){}
  79.  
  80.     /**
  81.      * not implemented
  82.      */
  83.     abstract public function bindColumn($column&$param $type=null );
  84.     /**
  85.      * not implemented
  86.      */
  87.     abstract public function bindParam($parameter&$variable $data_type =null$length=null,  $driver_options=null);
  88.     /**
  89.      * not implemented
  90.      */
  91.     abstract public function bindValue($parameter$value$data_type);
  92.     /**
  93.      * not implemented
  94.      */
  95.     abstract public function columnCount();
  96.  
  97.     /**
  98.      * not implemented
  99.      */
  100.     abstract public function execute($parameters=null);
  101.  
  102.     abstract public function rowCount();
  103.  
  104.     abstract protected function _free ();
  105.     abstract protected function _fetch ();
  106.     abstract protected function _rewind ();
  107.  
  108.     //--------------- interface Iterator
  109.     protected $_currentRecord = false;
  110.     protected $_recordIndex = 0;
  111.  
  112.     public function current ({
  113.         return $this->_currentRecord;
  114.     }
  115.  
  116.     public function key ({
  117.         return $this->_recordIndex;
  118.     }
  119.  
  120.     public function next ({
  121.         $this->_currentRecord =  $this->fetch ();
  122.         if($this->_currentRecord)
  123.             $this->_recordIndex++;
  124.     }
  125.  
  126.     public function rewind ({
  127.         $this->_rewind();
  128.         $this->_recordIndex = 0;
  129.         $this->_currentRecord =  $this->fetch ();
  130.     }
  131.  
  132.     public function valid ({
  133.         return ($this->_currentRecord != false);
  134.     }
  135.  
  136.  
  137. }
  138. ?>

Documentation generated on Wed, 07 Sep 2011 13:47:13 +0200 by phpDocumentor 1.4.3