Source for file jDbPDOResultSet.class.php

Documentation is available at jDbPDOResultSet.class.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage db
  5. @author     Laurent Jouanneau
  6. @contributor Gwendal Jouannic, Thomas, Julien Issler
  7. @copyright  2005-2010 Laurent Jouanneau
  8. @copyright  2008 Gwendal Jouannic, 2009 Thomas
  9. @copyright  2009 Julien Issler
  10. @link      http://www.jelix.org
  11. @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  12. */
  13.  
  14. /**
  15.  * a resultset based on PDOStatement
  16.  * @package  jelix
  17.  * @subpackage db
  18.  */
  19. class jDbPDOResultSet extends PDOStatement {
  20.  
  21.     protected $_fetchMode = 0;
  22.  
  23.     public function fetch ($fetch_style null$cursor_orientation PDO::FETCH_ORI_NEXT$cursor_offset 0{
  24.         // we take a shortcut: unused parameters are ignored by parent::fetch
  25.         // let the parent::setFetchMode override as needed, and PHP use its default
  26.         if ($fetch_style{
  27.             $rec parent::fetch($fetch_style$cursor_orientation$cursor_offset);
  28.         }
  29.         else {
  30.             $rec parent::fetch();
  31.         }
  32.  
  33.         if ($rec && count($this->modifier)) {
  34.             foreach($this->modifier as $m)
  35.                 call_user_func_array($marray($rec$this));
  36.         }
  37.         return $rec;
  38.     }
  39.  
  40.     /**
  41.      * return all results from the statement.
  42.      * @param integer $fetch_style 
  43.      * @param integer $fetch_argument 
  44.      * @param array $ctor_arg 
  45.      * @return array list of object which contain all rows
  46.      */
  47.     public function fetchAll ($fetch_style null$fetch_argument=null$ctor_arg=null{
  48.         // if the user requested to override the style set with setFetchMode, use it
  49.         $final_style ($fetch_style ?: $this->_fetchMode);
  50.  
  51.         // Check how many arguments, if available should be given
  52.         if (!$final_style{
  53.             $records parent::fetchAll(PDO::FETCH_OBJ);
  54.         }
  55.         else if ($ctor_arg{
  56.             $records parent::fetchAll($final_style$fetch_argument$ctor_arg);
  57.         }
  58.         else if ($fetch_argument{
  59.             $records parent::fetchAll($final_style$fetch_argument);
  60.         }
  61.         else {
  62.             $records parent::fetchAll($final_style);
  63.         }
  64.  
  65.         if (count($this->modifier)) {
  66.             foreach ($records as $rec)
  67.                 foreach($this->modifier as $m)
  68.                     call_user_func_array($marray($rec$this));
  69.         }
  70.         return $records;
  71.     }
  72.  
  73.     /**
  74.      * Set the fetch mode.
  75.      * @param int $mode  the mode, a PDO::FETCH_* constant
  76.      * @param mixed $arg1 a parameter for the given mode
  77.      * @param mixed $arg2 a parameter for the given mode
  78.      */
  79.     public function setFetchMode($mode$arg1=null $arg2=null){
  80.         $this->_fetchMode = $mode;
  81.         // depending the mode, original setFetchMode throw an error if wrong arguments
  82.         // are given, even if there are null
  83.         if ($arg1 === null)
  84.             return parent::setFetchMode($mode);
  85.         else if ($arg2 === null)
  86.             return parent::setFetchMode($mode$arg1);
  87.         return parent::setFetchMode($mode$arg1$arg2);
  88.     }
  89.  
  90.     /**
  91.      * @param string $text a binary string to unescape
  92.      * @since 1.1.6
  93.      */
  94.     public function unescapeBin($text{
  95.         return $text;
  96.     }
  97.  
  98.     /**
  99.      * a callback function which will modify on the fly record's value
  100.      * @var array of callback
  101.      * @since 1.1.6
  102.      */
  103.     protected $modifier = array();
  104.  
  105.     /**
  106.      * @param callback $function a callback function
  107.      *      the function should accept in parameter the record,
  108.      *      and the resulset object
  109.      * @since 1.1.6
  110.      */
  111.     public function addModifier($function{
  112.         $this->modifier[$function;
  113.     }
  114. }

Documentation generated on Wed, 04 Jan 2017 22:53:50 +0100 by phpDocumentor 1.4.3