[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/dbal/src/drivers/sqlite/ -> lmbSqliteStatement.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 lmbSqliteStatement.
  13   *
  14   * @package dbal
  15   * @version $Id$
  16   */
  17  class lmbSqliteStatement 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      "'" . sqlite_escape_string((string) $value) . "'";
  94    }
  95  
  96    function setVarChar($name, $value)
  97    {
  98      $this->parameters[$name] = is_null($value) ?
  99      'null' :
 100      "'" . sqlite_escape_string((string) $value) . "'";
 101    }
 102  
 103    function setClob($name, $value)
 104    {
 105      $this->parameters[$name] = is_null($value) ?
 106      'null' :
 107      "'" . sqlite_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] = "'" . sqlite_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->setChar($name, $value);
 144    }
 145  
 146    function set($name, $value)
 147    {
 148      if(is_string($value))
 149      {
 150        $this->setChar($name, $value);
 151      }
 152      else if(is_int($value))
 153      {
 154        $this->setInteger($name, $value);
 155      }
 156      else if(is_bool($value))
 157      {
 158        $this->setBoolean($name, $value);
 159      }
 160      else if(is_float($value))
 161      {
 162        $this->setFloat($name, $value);
 163      }
 164      else
 165      {
 166        $this->setNull($name);
 167      }
 168    }
 169  
 170    function import($paramList)
 171    {
 172      foreach($paramList as $name=>$value)
 173      {
 174        $this->set($name, $value);
 175      }
 176    }
 177  
 178    function getSQL()
 179    {
 180      $sql = $this->statement;
 181      foreach($this->parameters as $key => $value)
 182      {
 183        $sql = str_replace(':' . $key . ':', $value, $sql);
 184      }
 185      return $sql;
 186    }
 187  
 188    function execute()
 189    {
 190      return (bool)$this->connection->execute($this->getSQL());
 191    }
 192  }
 193  
 194  ?>


Generated: Thu Aug 28 04:51:15 2008 Cross-referenced by PHPXref 0.7