00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 if (!defined('ADODB_DIR')) die();
00018
00019 include_once(ADODB_DIR."/drivers/adodb-mysql.inc.php");
00020
00021
00022 class ADODB_mysqlt extends ADODB_mysql {
00023 var $databaseType = 'mysqlt';
00024 var $ansiOuter = true;
00025 var $hasTransactions = true;
00026 var $autoRollback = true;
00027
00028 function ADODB_mysqlt()
00029 {
00030 global $ADODB_EXTENSION; if ($ADODB_EXTENSION) $this->rsPrefix .= 'ext_';
00031 }
00032
00033 function BeginTrans()
00034 {
00035 if ($this->transOff) return true;
00036 $this->transCnt += 1;
00037 $this->Execute('SET AUTOCOMMIT=0');
00038 $this->Execute('BEGIN');
00039 return true;
00040 }
00041
00042 function CommitTrans($ok=true)
00043 {
00044 if ($this->transOff) return true;
00045 if (!$ok) return $this->RollbackTrans();
00046
00047 if ($this->transCnt) $this->transCnt -= 1;
00048 $this->Execute('COMMIT');
00049 $this->Execute('SET AUTOCOMMIT=1');
00050 return true;
00051 }
00052
00053 function RollbackTrans()
00054 {
00055 if ($this->transOff) return true;
00056 if ($this->transCnt) $this->transCnt -= 1;
00057 $this->Execute('ROLLBACK');
00058 $this->Execute('SET AUTOCOMMIT=1');
00059 return true;
00060 }
00061
00062 function RowLock($tables,$where='',$flds='1 as adodb_ignore')
00063 {
00064 if ($this->transCnt==0) $this->BeginTrans();
00065 if ($where) $where = ' where '.$where;
00066 $rs =& $this->Execute("select $flds from $tables $where for update");
00067 return !empty($rs);
00068 }
00069
00070 }
00071
00072 class ADORecordSet_mysqlt extends ADORecordSet_mysql{
00073 var $databaseType = "mysqlt";
00074
00075 function ADORecordSet_mysqlt($queryID,$mode=false)
00076 {
00077 if ($mode === false) {
00078 global $ADODB_FETCH_MODE;
00079 $mode = $ADODB_FETCH_MODE;
00080 }
00081
00082 switch ($mode)
00083 {
00084 case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
00085 case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
00086
00087 case ADODB_FETCH_DEFAULT:
00088 case ADODB_FETCH_BOTH:
00089 default: $this->fetchMode = MYSQL_BOTH; break;
00090 }
00091
00092 $this->adodbFetchMode = $mode;
00093 $this->ADORecordSet($queryID);
00094 }
00095
00096 function MoveNext()
00097 {
00098 if (@$this->fields = mysql_fetch_array($this->_queryID,$this->fetchMode)) {
00099 $this->_currentRow += 1;
00100 return true;
00101 }
00102 if (!$this->EOF) {
00103 $this->_currentRow += 1;
00104 $this->EOF = true;
00105 }
00106 return false;
00107 }
00108 }
00109
00110 class ADORecordSet_ext_mysqlt extends ADORecordSet_mysqlt {
00111
00112 function ADORecordSet_ext_mysqlt($queryID,$mode=false)
00113 {
00114 if ($mode === false) {
00115 global $ADODB_FETCH_MODE;
00116 $mode = $ADODB_FETCH_MODE;
00117 }
00118 switch ($mode)
00119 {
00120 case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;
00121 case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;
00122
00123 case ADODB_FETCH_DEFAULT:
00124 case ADODB_FETCH_BOTH:
00125 default:
00126 $this->fetchMode = MYSQL_BOTH; break;
00127 }
00128 $this->adodbFetchMode = $mode;
00129 $this->ADORecordSet($queryID);
00130 }
00131
00132 function MoveNext()
00133 {
00134 return adodb_movenext($this);
00135 }
00136 }
00137
00138 ?>