[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |