[ Index ] |
|
Code source de PHP NUKE 7.9 |
1 <?php 2 /*************************************************************************** 3 * sqlite.php 4 * ------------------- 5 * begin : Saturday, Feb 13, 2001 6 * copyright : (C) 2001 The phpBB Group 7 * email : support@phpbb.com 8 * 9 * $Id: sqlite.php,v 1.16 2002/03/19 01:07:36 psotfx Exp $ 10 * 11 ***************************************************************************/ 12 13 /*************************************************************************** 14 * 15 * This program is free software; you can redistribute it and/or modify 16 * it under the terms of the GNU General Public License as published by 17 * the Free Software Foundation; either version 2 of the License, or 18 * (at your option) any later version. 19 * 20 ***************************************************************************/ 21 22 if(!defined('SQL_LAYER')) 23 { 24 25 define('SQL_LAYER', 'sqlite'); 26 27 class sql_db 28 { 29 30 var $db_connect_id; 31 var $query_result; 32 var $row = array(); 33 var $rowset = array(); 34 var $num_queries = 0; 35 36 // 37 // Constructor 38 // 39 function sql_db($sqlserver, $trash, $trash, $trash, $persistency = true) 40 { 41 $this->persistency = $persistency; 42 $this->server = $sqlserver; 43 44 $this->db_connect_id = ($this->persistency) ? @sqlite_popen($this->server, 0666, $sqliteerror) : @sqlite_open($this->server, 0666, $sqliteerror); 45 46 return ($this->db_connect_id) ? $this->db_connect_id : false; 47 } 48 49 // 50 // Other base methods 51 // 52 function sql_close() 53 { 54 return ($this->db_connect_id) ? @sqlite_close($this->db_connect_id) : false; 55 } 56 57 // 58 // Base query method 59 // 60 function sql_query($query = '', $transaction = FALSE) 61 { 62 // Remove any pre-existing queries 63 unset($this->query_result); 64 65 if($query != '') 66 { 67 $this->num_queries++; 68 69 $this->query_result = @sqlite_query($query, $this->db_connect_id); 70 } 71 72 if($this->query_result) 73 { 74 unset($this->row[$this->query_result]); 75 unset($this->rowset[$this->query_result]); 76 77 return $this->query_result; 78 } 79 else 80 { 81 return ( $transaction == END_TRANSACTION ) ? true : false; 82 } 83 } 84 85 // 86 // Other query methods 87 // 88 function sql_numrows($query_id = 0) 89 { 90 if(!$query_id) 91 { 92 $query_id = $this->query_result; 93 } 94 95 if($query_id) 96 { 97 return @sqlite_num_rows($query_id); 98 } 99 else 100 { 101 return false; 102 } 103 } 104 105 function sql_affectedrows() 106 { 107 return ($this->db_connect_id) ? @sqlite_changes($this->db_connect_id) : false; 108 } 109 110 function sql_numfields($query_id = 0) 111 { 112 if(!$query_id) 113 { 114 $query_id = $this->query_result; 115 } 116 117 return ($query_id) ? @sqlite_num_fields($query_id) : false; 118 } 119 120 function sql_fieldname($offset, $query_id = 0) 121 { 122 if(!$query_id) 123 { 124 $query_id = $this->query_result; 125 } 126 127 return ($query_id) ? @sqlite_field_name($query_id, $offset) : false; 128 } 129 130 function sql_fieldtype($offset, $query_id = 0) 131 { 132 exit('sql_fieldtype called'); 133 134 if(!$query_id) 135 { 136 $query_id = $this->query_result; 137 } 138 139 // return ($query_id) ? @mysql_field_type($query_id, $offset) : false; 140 return ($query_id) ? 'varchar' : false; 141 } 142 143 function sql_fetchrow($query_id = 0) 144 { 145 if(!$query_id) 146 { 147 $query_id = $this->query_result; 148 } 149 150 if($query_id) 151 { 152 //$this->row[$query_id] = @sqlite_fetch_array($query_id); 153 //return $this->row[$query_id]; 154 155 156 $result = sqlite_fetch_array($query_id); 157 158 if ($result) 159 { 160 foreach ($result as $key => $value) 161 { 162 if ($pos = strpos($key, '.')) 163 { 164 $key = substr($key, $pos+1); 165 } 166 167 $array[$key] = $value; 168 } 169 } 170 171 $this->row[$query_id] = $array; 172 173 return $this->row[$query_id]; 174 } 175 else 176 { 177 return false; 178 } 179 } 180 181 function sql_fetchrowset($query_id = 0) 182 { 183 if(!$query_id) 184 { 185 $query_id = $this->query_result; 186 } 187 188 if($query_id) 189 { 190 unset( 191 $this->rowset[$query_id], 192 $this->row[$query_id] 193 ); 194 195 while($this->rowset[$query_id] = @sqlite_fetch_array($query_id)) 196 { 197 foreach ($this->rowset[$query_id] as $key => $value) 198 { 199 if ($pos = strpos($key, '.')) 200 { 201 $key = substr($key, $pos+1); 202 } 203 204 $array[$key] = $value; 205 } 206 207 $result[] = $array; 208 } 209 210 return $result; 211 } 212 else 213 { 214 return false; 215 } 216 } 217 218 function sql_fetchfield($field, $rownum = -1, $query_id = 0) 219 { 220 exit('sql_fetchfield called'); 221 222 if( !$query_id ) 223 { 224 $query_id = $this->query_result; 225 } 226 227 if( $query_id ) 228 { 229 if( $rownum > -1 ) 230 { 231 $result = mysql_result($query_id, $rownum, $field); 232 } 233 else 234 { 235 if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) ) 236 { 237 if( $this->sql_fetchrow() ) 238 { 239 $result = $this->row[$query_id][$field]; 240 } 241 } 242 else 243 { 244 if( $this->rowset[$query_id] ) 245 { 246 $result = $this->rowset[$query_id][$field]; 247 } 248 else if( $this->row[$query_id] ) 249 { 250 $result = $this->row[$query_id][$field]; 251 } 252 } 253 } 254 255 return $result; 256 } 257 else 258 { 259 return false; 260 } 261 } 262 263 function sql_rowseek($rownum, $query_id = 0) 264 { 265 if(!$query_id) 266 { 267 $query_id = $this->query_result; 268 } 269 270 return ($query_id) ? @sqlite_seek($query_id, $rownum) : false; 271 } 272 273 function sql_nextid() 274 { 275 return ($this->db_connect_id) ? @sqlite_last_insert_rowid($this->db_connect_id) : false; 276 } 277 278 function sql_freeresult($query_id = 0) 279 { 280 if(!$query_id) 281 { 282 $query_id = $this->query_result; 283 } 284 285 if ( $query_id ) 286 { 287 unset( 288 $this->row[$query_id], 289 $this->rowset[$query_id] 290 ); 291 292 //@mysql_free_result($query_id); 293 294 return true; 295 } 296 else 297 { 298 return false; 299 } 300 } 301 302 function sql_error() 303 { 304 $result['code'] = sqlite_last_error($this->db_connect_id); 305 $result['message'] = sqlite_error_string($result['code']); 306 307 return $result; 308 } 309 310 } // class sql_db 311 312 } // if ... define 313 314 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 11:11:59 2007 | par Balluche grâce à PHPXref 0.7 |