[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/dbal/src/drivers/pgsql/ -> lmbPgsqlStatement.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  lmb_require('limb/dbal/src/drivers/lmbDbStatement.interface.php');
  10  
  11  /**

  12   * class lmbPgsqlStatement.

  13   *

  14   * @package dbal

  15   * @version $Id: lmbPgsqlStatement.class.php 5945 2007-06-06 08:31:43Z pachanga $

  16   */
  17  class lmbPgsqlStatement implements lmbDbStatement
  18  {
  19    protected $statement;
  20    protected $connection;
  21    protected $parameters = array();
  22  
  23    function __construct($connection, $sql)
  24    {
  25      $this->statement = $sql;
  26      $this->connection = $connection;
  27    }
  28  
  29    function setNull($name)
  30    {
  31      $this->parameters[$name] = 'null';
  32    }
  33  
  34    function setSmallInt($name, $value)
  35    {
  36      $this->parameters[$name] = is_null($value) ?  'null' : intval($value);
  37    }
  38  
  39    function setInteger($name, $value)
  40    {
  41      $this->parameters[$name] = is_null($value) ?  'null' : intval($value);
  42    }
  43  
  44    function setFloat($name, $value)
  45    {
  46      $this->parameters[$name] = is_null($value) ?
  47      'null' :
  48      floatval($value);
  49    }
  50  
  51    function setDouble($name, $value)
  52    {
  53      if(is_float($value) || is_integer($value))
  54      {
  55        $this->parameters[$name] = $value;
  56      }
  57      else if(is_string($value) && preg_match('/^(|-)\d+(|.\d+)$/', $value))
  58      {
  59        $this->parameters[$name] = $value;
  60      }
  61      else
  62      {
  63        $this->parameters[$name] = 'null';
  64      }
  65    }
  66  
  67    function setDecimal($name, $value)
  68    {
  69      if(is_float($value) || is_integer($value))
  70      {
  71        $this->parameters[$name] = $value;
  72      }
  73      else if(is_string($value) && preg_match('/^(|-)\d+(|.\d+)$/', $value))
  74      {
  75        $this->parameters[$name] = $value;
  76      }
  77      else
  78      {
  79        $this->parameters[$name] = 'null';
  80      }
  81    }
  82  
  83    function setBoolean($name, $value)
  84    {
  85      $this->parameters[$name] = is_null($value) ?
  86      'null' :(($value) ?  "'1'" : "'0'");
  87    }
  88  
  89    function setChar($name, $value)
  90    {
  91      $this->parameters[$name] = is_null($value) ?
  92      'null' :
  93      "'" . pg_escape_string((string) $value) . "'";
  94    }
  95  
  96    function setVarChar($name, $value)
  97    {
  98      $this->parameters[$name] = is_null($value) ?
  99      'null' :
 100      "'" . pg_escape_string((string) $value) . "'";
 101    }
 102  
 103    function setClob($name, $value)
 104    {
 105      $this->parameters[$name] = is_null($value) ?
 106      'null' :
 107      "'" . pg_escape_string((string) $value) . "'";
 108    }
 109  
 110    protected function _setDate($name, $value, $format)
 111    {
 112      if(is_int($value))
 113      {
 114        $this->parameters[$name] = "'" . date($format, $value) . "'";
 115      }
 116      else if(is_string($value))
 117      {
 118        $this->parameters[$name] = "'" . pg_escape_string((string) $value) . "'";
 119      }
 120      else
 121      {
 122        $this->parameters[$name] = 'null';
 123      }
 124    }
 125  
 126    function setDate($name, $value)
 127    {
 128      $this->_setDate($name, $value, 'Y-m-d');
 129    }
 130  
 131    function setTime($name, $value)
 132    {
 133      $this->_setDate($name, $value, 'H:i:s');
 134    }
 135  
 136    function setTimeStamp($name, $value)
 137    {
 138      $this->_setDate($name, $value, 'Y-m-d H:i:s');
 139    }
 140  
 141    function setBlob($name, $value)
 142    {
 143      $this->parameters[$name] = is_null($value) ?
 144      'null' :
 145      "'" . pg_escape_bytea((string) $value) . "'";
 146    }
 147  
 148    function set($name, $value)
 149    {
 150      if(is_string($value))
 151      {
 152        $this->setChar($name, $value);
 153      }
 154      else if(is_int($value))
 155      {
 156        $this->setInteger($name, $value);
 157      }
 158      else if(is_bool($value))
 159      {
 160        $this->setBoolean($name, $value);
 161      }
 162      else if(is_float($value))
 163      {
 164        $this->setFloat($name, $value);
 165      }
 166      else
 167      {
 168        $this->setNull($name);
 169      }
 170    }
 171  
 172    function import($paramList)
 173    {
 174      foreach($paramList as $name=>$value)
 175      {
 176        $this->set($name, $value);
 177      }
 178    }
 179  
 180    function getSQL()
 181    {
 182      $sql = $this->statement;
 183      foreach($this->parameters as $key => $value)
 184      {
 185        $sql = str_replace(':' . $key . ':', $value, $sql);
 186      }
 187      return $sql;
 188    }
 189  
 190    function execute()
 191    {
 192      return $this->connection->execute($this->getSQL());
 193    }
 194  }
 195  
 196  ?>


Generated: Tue Oct 14 04:47:40 2008 Cross-referenced by PHPXref 0.7