TYPO3 CMS  TYPO3_6-2
adodb-mysqlpo.inc.php
Go to the documentation of this file.
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 <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 
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 }
if(isset($_REQUEST['nrows'])) else $rs
Definition: server.php:92
die
Definition: index.php:6
ADORecordSet_ext_mysqlt($queryID, $mode=false)
ADORecordSet_mysqlt($queryID, $mode=false)
CommitTrans($ok=true)
RowLock($tables, $where='', $col='1 as adodbignore')