[ Index ]

PHP Cross Reference of MantisBT

title

Body

[close]

/library/adodb/drivers/ -> adodb-mysqlpo.inc.php (source)

   1  <?php
   2  
   3  /*
   4  V5.11 5 May 2010   (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved.
   5    Released under both BSD license and Lesser GPL library license. 
   6    Whenever there is any discrepancy between the two licenses, 
   7    the BSD license will take precedence.
   8    Set tabs to 8.
   9    
  10    MySQL code that supports transactions. For MySQL 3.23 or later.
  11    Code from James Poon <jpoon88@yahoo.com>
  12    
  13    Requires mysql client. Works on Windows and Unix.
  14  */
  15  
  16  // security - hide paths
  17  if (!defined('ADODB_DIR')) die();
  18  
  19  include_once(ADODB_DIR."/drivers/adodb-mysql.inc.php");
  20  
  21  
  22  class ADODB_mysqlt extends ADODB_mysql {
  23      var $databaseType = 'mysqlt';
  24      var $ansiOuter = true; // for Version 3.23.17 or later
  25      var $hasTransactions = true;
  26      var $autoRollback = true; // apparently mysql does not autorollback properly 
  27      
  28  	function ADODB_mysqlt() 
  29      {            
  30      global $ADODB_EXTENSION; if ($ADODB_EXTENSION) $this->rsPrefix .= 'ext_';
  31      }
  32      
  33  	function BeginTrans()
  34      {      
  35          if ($this->transOff) return true;
  36          $this->transCnt += 1;
  37          $this->Execute('SET AUTOCOMMIT=0');
  38          $this->Execute('BEGIN');
  39          return true;
  40      }
  41      
  42  	function CommitTrans($ok=true) 
  43      {
  44          if ($this->transOff) return true; 
  45          if (!$ok) return $this->RollbackTrans();
  46          
  47          if ($this->transCnt) $this->transCnt -= 1;
  48          $this->Execute('COMMIT');
  49          $this->Execute('SET AUTOCOMMIT=1');
  50          return true;
  51      }
  52      
  53  	function RollbackTrans()
  54      {
  55          if ($this->transOff) return true;
  56          if ($this->transCnt) $this->transCnt -= 1;
  57          $this->Execute('ROLLBACK');
  58          $this->Execute('SET AUTOCOMMIT=1');
  59          return true;
  60      }
  61      
  62  	function RowLock($tables,$where='',$col='1 as adodbignore') 
  63      {
  64          if ($this->transCnt==0) $this->BeginTrans();
  65          if ($where) $where = ' where '.$where;
  66          $rs = $this->Execute("select $col from $tables $where for update");
  67          return !empty($rs); 
  68      }
  69      
  70  }
  71  
  72  class ADORecordSet_mysqlt extends ADORecordSet_mysql{    
  73      var $databaseType = "mysqlt";
  74      
  75  	function ADORecordSet_mysqlt($queryID,$mode=false) 
  76      {
  77          if ($mode === false) { 
  78              global $ADODB_FETCH_MODE;
  79              $mode = $ADODB_FETCH_MODE;
  80          }
  81          
  82          switch ($mode)
  83          {
  84          case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
  85          case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
  86          
  87          case ADODB_FETCH_DEFAULT:
  88          case ADODB_FETCH_BOTH:
  89          default: $this->fetchMode = MYSQL_BOTH; break;
  90          }
  91      
  92          $this->adodbFetchMode = $mode;
  93          $this->ADORecordSet($queryID);    
  94      }
  95      
  96  	function MoveNext()
  97      {
  98          if (@$this->fields = mysql_fetch_array($this->_queryID,$this->fetchMode)) {
  99              $this->_currentRow += 1;
 100              return true;
 101          }
 102          if (!$this->EOF) {
 103              $this->_currentRow += 1;
 104              $this->EOF = true;
 105          }
 106          return false;
 107      }
 108  }
 109  
 110  class ADORecordSet_ext_mysqlt extends ADORecordSet_mysqlt {    
 111  
 112  	function ADORecordSet_ext_mysqlt($queryID,$mode=false) 
 113      {
 114          if ($mode === false) { 
 115              global $ADODB_FETCH_MODE;
 116              $mode = $ADODB_FETCH_MODE;
 117          }
 118          switch ($mode)
 119          {
 120          case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
 121          case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
 122          
 123          case ADODB_FETCH_DEFAULT:
 124          case ADODB_FETCH_BOTH:
 125          default: 
 126              $this->fetchMode = MYSQL_BOTH; break;
 127          }
 128          $this->adodbFetchMode = $mode;
 129          $this->ADORecordSet($queryID);    
 130      }
 131      
 132  	function MoveNext()
 133      {
 134          return adodb_movenext($this);
 135      }
 136  }
 137  
 138  ?>


Generated: Thu Jul 28 15:48:31 2011 Cross-referenced by PHPXref 0.7