[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

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

   1  <?php
   2  
   3  /*
   4  V5.19  23-Apr-2014  (c) 2000-2014 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 <[email protected]>
  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  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1