source: sandbox/2.5.1-evolucao/phpgwapi/inc/adodb/drivers/adodb-mysqlpo.inc.php @ 8222

Revision 8222, 3.1 KB checked in by angelo, 11 years ago (diff)

Ticket #3491 - Compatibilizar Expresso com novas versoes do PHP

Line 
1<?php
2
3/*
4V5.18 3 Sep 2012  (c) 2000-2012 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
17if (!defined('ADODB_DIR')) die();
18
19include_once(ADODB_DIR."/drivers/adodb-mysql.inc.php");
20
21
22class 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
72class 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
110class 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?>
Note: See TracBrowser for help on using the repository browser.