[ Index ] |
|
Code source de Mantis 1.1.0rc3 |
1 <?php 2 /* 3 V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. 4 Released under both BSD license and Lesser GPL library license. 5 Whenever there is any discrepancy between the two licenses, 6 the BSD license will take precedence. 7 Set tabs to 4. 8 9 Currently unsupported: MetaDatabases, MetaTables and MetaColumns, and also inputarr in Execute. 10 Native types have been converted to MetaTypes. 11 Transactions not supported yet. 12 13 Limitation of url length. For IIS, see MaxClientRequestBuffer registry value. 14 15 http://support.microsoft.com/default.aspx?scid=kb;en-us;260694 16 */ 17 18 // security - hide paths 19 if (!defined('ADODB_DIR')) die(); 20 21 if (! defined("_ADODB_CSV_LAYER")) { 22 define("_ADODB_CSV_LAYER", 1 ); 23 24 include_once (ADODB_DIR.'/adodb-csvlib.inc.php'); 25 26 class ADODB_csv extends ADOConnection { 27 var $databaseType = 'csv'; 28 var $databaseProvider = 'csv'; 29 var $hasInsertID = true; 30 var $hasAffectedRows = true; 31 var $fmtTimeStamp = "'Y-m-d H:i:s'"; 32 var $_affectedrows=0; 33 var $_insertid=0; 34 var $_url; 35 var $replaceQuote = "''"; // string to use to replace quotes 36 var $hasTransactions = false; 37 var $_errorNo = false; 38 39 function ADODB_csv() 40 { 41 } 42 43 function _insertid() 44 { 45 return $this->_insertid; 46 } 47 48 function _affectedrows() 49 { 50 return $this->_affectedrows; 51 } 52 53 function &MetaDatabases() 54 { 55 return false; 56 } 57 58 59 // returns true or false 60 function _connect($argHostname, $argUsername, $argPassword, $argDatabasename) 61 { 62 if (strtolower(substr($argHostname,0,7)) !== 'http://') return false; 63 $this->_url = $argHostname; 64 return true; 65 } 66 67 // returns true or false 68 function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename) 69 { 70 if (strtolower(substr($argHostname,0,7)) !== 'http://') return false; 71 $this->_url = $argHostname; 72 return true; 73 } 74 75 function &MetaColumns($table) 76 { 77 return false; 78 } 79 80 81 // parameters use PostgreSQL convention, not MySQL 82 function &SelectLimit($sql,$nrows=-1,$offset=-1) 83 { 84 global $ADODB_FETCH_MODE; 85 86 $url = $this->_url.'?sql='.urlencode($sql)."&nrows=$nrows&fetch=". 87 (($this->fetchMode !== false)?$this->fetchMode : $ADODB_FETCH_MODE). 88 "&offset=$offset"; 89 $err = false; 90 $rs = csv2rs($url,$err,false); 91 92 if ($this->debug) print "$url<br><i>$err</i><br>"; 93 94 $at = strpos($err,'::::'); 95 if ($at === false) { 96 $this->_errorMsg = $err; 97 $this->_errorNo = (integer)$err; 98 } else { 99 $this->_errorMsg = substr($err,$at+4,1024); 100 $this->_errorNo = -9999; 101 } 102 if ($this->_errorNo) 103 if ($fn = $this->raiseErrorFn) { 104 $fn($this->databaseType,'EXECUTE',$this->ErrorNo(),$this->ErrorMsg(),$sql,''); 105 } 106 107 if (is_object($rs)) { 108 109 $rs->databaseType='csv'; 110 $rs->fetchMode = ($this->fetchMode !== false) ? $this->fetchMode : $ADODB_FETCH_MODE; 111 $rs->connection = &$this; 112 } 113 return $rs; 114 } 115 116 // returns queryID or false 117 function &_Execute($sql,$inputarr=false) 118 { 119 global $ADODB_FETCH_MODE; 120 121 if (!$this->_bindInputArray && $inputarr) { 122 $sqlarr = explode('?',$sql); 123 $sql = ''; 124 $i = 0; 125 foreach($inputarr as $v) { 126 127 $sql .= $sqlarr[$i]; 128 if (gettype($v) == 'string') 129 $sql .= $this->qstr($v); 130 else if ($v === null) 131 $sql .= 'NULL'; 132 else 133 $sql .= $v; 134 $i += 1; 135 136 } 137 $sql .= $sqlarr[$i]; 138 if ($i+1 != sizeof($sqlarr)) 139 print "Input Array does not match ?: ".htmlspecialchars($sql); 140 $inputarr = false; 141 } 142 143 $url = $this->_url.'?sql='.urlencode($sql)."&fetch=". 144 (($this->fetchMode !== false)?$this->fetchMode : $ADODB_FETCH_MODE); 145 $err = false; 146 147 148 $rs = csv2rs($url,$err,false); 149 if ($this->debug) print urldecode($url)."<br><i>$err</i><br>"; 150 $at = strpos($err,'::::'); 151 if ($at === false) { 152 $this->_errorMsg = $err; 153 $this->_errorNo = (integer)$err; 154 } else { 155 $this->_errorMsg = substr($err,$at+4,1024); 156 $this->_errorNo = -9999; 157 } 158 159 if ($this->_errorNo) 160 if ($fn = $this->raiseErrorFn) { 161 $fn($this->databaseType,'EXECUTE',$this->ErrorNo(),$this->ErrorMsg(),$sql,$inputarr); 162 } 163 if (is_object($rs)) { 164 $rs->fetchMode = ($this->fetchMode !== false) ? $this->fetchMode : $ADODB_FETCH_MODE; 165 166 $this->_affectedrows = $rs->affectedrows; 167 $this->_insertid = $rs->insertid; 168 $rs->databaseType='csv'; 169 $rs->connection = &$this; 170 } 171 return $rs; 172 } 173 174 /* Returns: the last error message from previous database operation */ 175 function ErrorMsg() 176 { 177 return $this->_errorMsg; 178 } 179 180 /* Returns: the last error number from previous database operation */ 181 function ErrorNo() 182 { 183 return $this->_errorNo; 184 } 185 186 // returns true or false 187 function _close() 188 { 189 return true; 190 } 191 } // class 192 193 class ADORecordset_csv extends ADORecordset { 194 function ADORecordset_csv($id,$mode=false) 195 { 196 $this->ADORecordset($id,$mode); 197 } 198 199 function _close() 200 { 201 return true; 202 } 203 } 204 205 } // define 206 207 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Nov 29 09:42:17 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |