[ Index ] |
PHP Cross Reference of phpBB-3.1.12-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 namespace phpbb\db\driver; 15 16 interface driver_interface 17 { 18 /** 19 * Gets the name of the sql layer. 20 * 21 * @return string 22 */ 23 public function get_sql_layer(); 24 25 /** 26 * Gets the name of the database. 27 * 28 * @return string 29 */ 30 public function get_db_name(); 31 32 /** 33 * Wildcards for matching any (%) character within LIKE expressions 34 * 35 * @return string 36 */ 37 public function get_any_char(); 38 39 /** 40 * Wildcards for matching exactly one (_) character within LIKE expressions 41 * 42 * @return string 43 */ 44 public function get_one_char(); 45 46 /** 47 * Gets the time spent into the queries 48 * 49 * @return int 50 */ 51 public function get_sql_time(); 52 53 /** 54 * Gets the connect ID. 55 * 56 * @return mixed 57 */ 58 public function get_db_connect_id(); 59 60 /** 61 * Indicates if an error was triggered. 62 * 63 * @return bool 64 */ 65 public function get_sql_error_triggered(); 66 67 /** 68 * Gets the last faulty query 69 * 70 * @return string 71 */ 72 public function get_sql_error_sql(); 73 74 /** 75 * Indicates if we are in a transaction. 76 * 77 * @return bool 78 */ 79 public function get_transaction(); 80 81 /** 82 * Gets the returned error. 83 * 84 * @return array 85 */ 86 public function get_sql_error_returned(); 87 88 /** 89 * Indicates if multiple insertion can be used 90 * 91 * @return bool 92 */ 93 public function get_multi_insert(); 94 95 /** 96 * Set if multiple insertion can be used 97 * 98 * @param bool $multi_insert 99 */ 100 public function set_multi_insert($multi_insert); 101 102 /** 103 * Gets the exact number of rows in a specified table. 104 * 105 * @param string $table_name Table name 106 * @return string Exact number of rows in $table_name. 107 */ 108 public function get_row_count($table_name); 109 110 /** 111 * Gets the estimated number of rows in a specified table. 112 * 113 * @param string $table_name Table name 114 * @return string Number of rows in $table_name. 115 * Prefixed with ~ if estimated (otherwise exact). 116 */ 117 public function get_estimated_row_count($table_name); 118 119 /** 120 * Run LOWER() on DB column of type text (i.e. neither varchar nor char). 121 * 122 * @param string $column_name The column name to use 123 * @return string A SQL statement like "LOWER($column_name)" 124 */ 125 public function sql_lower_text($column_name); 126 127 /** 128 * Display sql error page 129 * 130 * @param string $sql The SQL query causing the error 131 * @return mixed Returns the full error message, if $this->return_on_error 132 * is set, null otherwise 133 */ 134 public function sql_error($sql = ''); 135 136 /** 137 * Returns whether results of a query need to be buffered to run a 138 * transaction while iterating over them. 139 * 140 * @return bool Whether buffering is required. 141 */ 142 public function sql_buffer_nested_transactions(); 143 144 /** 145 * Run binary OR operator on DB column. 146 * 147 * @param string $column_name The column name to use 148 * @param int $bit The value to use for the OR operator, 149 * will be converted to (1 << $bit). Is used by options, 150 * using the number schema... 0, 1, 2...29 151 * @param string $compare Any custom SQL code after the check (e.g. "= 0") 152 * @return string A SQL statement like "$column | (1 << $bit) {$compare}" 153 */ 154 public function sql_bit_or($column_name, $bit, $compare = ''); 155 156 /** 157 * Version information about used database 158 * 159 * @param bool $raw Only return the fetched sql_server_version 160 * @param bool $use_cache Is it safe to retrieve the value from the cache 161 * @return string sql server version 162 */ 163 public function sql_server_info($raw = false, $use_cache = true); 164 165 /** 166 * Return on error or display error message 167 * 168 * @param bool $fail Should we return on errors, or stop 169 * @return null 170 */ 171 public function sql_return_on_error($fail = false); 172 173 /** 174 * Build sql statement from an array 175 * 176 * @param string $query Should be on of the following strings: 177 * INSERT, INSERT_SELECT, UPDATE, SELECT, DELETE 178 * @param array $assoc_ary Array with "column => value" pairs 179 * @return string A SQL statement like "c1 = 'a' AND c2 = 'b'" 180 */ 181 public function sql_build_array($query, $assoc_ary = array()); 182 183 /** 184 * Fetch all rows 185 * 186 * @param mixed $query_id Already executed query to get the rows from, 187 * if false, the last query will be used. 188 * @return mixed Nested array if the query had rows, false otherwise 189 */ 190 public function sql_fetchrowset($query_id = false); 191 192 /** 193 * SQL Transaction 194 * 195 * @param string $status Should be one of the following strings: 196 * begin, commit, rollback 197 * @return mixed Buffered, seekable result handle, false on error 198 */ 199 public function sql_transaction($status = 'begin'); 200 201 /** 202 * Build a concatenated expression 203 * 204 * @param string $expr1 Base SQL expression where we append the second one 205 * @param string $expr2 SQL expression that is appended to the first expression 206 * @return string Concatenated string 207 */ 208 public function sql_concatenate($expr1, $expr2); 209 210 /** 211 * Build a case expression 212 * 213 * Note: The two statements action_true and action_false must have the same 214 * data type (int, vchar, ...) in the database! 215 * 216 * @param string $condition The condition which must be true, 217 * to use action_true rather then action_else 218 * @param string $action_true SQL expression that is used, if the condition is true 219 * @param mixed $action_false SQL expression that is used, if the condition is false 220 * @return string CASE expression including the condition and statements 221 */ 222 public function sql_case($condition, $action_true, $action_false = false); 223 224 /** 225 * Build sql statement from array for select and select distinct statements 226 * 227 * Possible query values: SELECT, SELECT_DISTINCT 228 * 229 * @param string $query Should be one of: SELECT, SELECT_DISTINCT 230 * @param array $array Array with the query data: 231 * SELECT A comma imploded list of columns to select 232 * FROM Array with "table => alias" pairs, 233 * (alias can also be an array) 234 * Optional: LEFT_JOIN Array of join entries: 235 * FROM Table that should be joined 236 * ON Condition for the join 237 * Optional: WHERE Where SQL statement 238 * Optional: GROUP_BY Group by SQL statement 239 * Optional: ORDER_BY Order by SQL statement 240 * @return string A SQL statement ready for execution 241 */ 242 public function sql_build_query($query, $array); 243 244 /** 245 * Fetch field 246 * if rownum is false, the current row is used, else it is pointing to the row (zero-based) 247 * 248 * @param string $field Name of the column 249 * @param mixed $rownum Row number, if false the current row will be used 250 * and the row curser will point to the next row 251 * Note: $rownum is 0 based 252 * @param mixed $query_id Already executed query to get the rows from, 253 * if false, the last query will be used. 254 * @return mixed String value of the field in the selected row, 255 * false, if the row does not exist 256 */ 257 public function sql_fetchfield($field, $rownum = false, $query_id = false); 258 259 /** 260 * Fetch current row 261 * 262 * @param mixed $query_id Already executed query to get the rows from, 263 * if false, the last query will be used. 264 * @return mixed Array with the current row, 265 * false, if the row does not exist 266 */ 267 public function sql_fetchrow($query_id = false); 268 269 /** 270 * Returns SQL string to cast a string expression to an int. 271 * 272 * @param string $expression An expression evaluating to string 273 * @return string Expression returning an int 274 */ 275 public function cast_expr_to_bigint($expression); 276 277 /** 278 * Get last inserted id after insert statement 279 * 280 * @return string Autoincrement value of the last inserted row 281 */ 282 public function sql_nextid(); 283 284 /** 285 * Add to query count 286 * 287 * @param bool $cached Is this query cached? 288 * @return null 289 */ 290 public function sql_add_num_queries($cached = false); 291 292 /** 293 * Build LIMIT query 294 * 295 * @param string $query The SQL query to execute 296 * @param int $total The number of rows to select 297 * @param int $offset 298 * @param int $cache_ttl Either 0 to avoid caching or 299 * the time in seconds which the result shall be kept in cache 300 * @return mixed Buffered, seekable result handle, false on error 301 */ 302 public function sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0); 303 304 /** 305 * Base query method 306 * 307 * @param string $query The SQL query to execute 308 * @param int $cache_ttl Either 0 to avoid caching or 309 * the time in seconds which the result shall be kept in cache 310 * @return mixed Buffered, seekable result handle, false on error 311 */ 312 public function sql_query($query = '', $cache_ttl = 0); 313 314 /** 315 * Returns SQL string to cast an integer expression to a string. 316 * 317 * @param string $expression An expression evaluating to int 318 * @return string Expression returning a string 319 */ 320 public function cast_expr_to_string($expression); 321 322 /** 323 * Connect to server 324 * 325 * @param string $sqlserver Address of the database server 326 * @param string $sqluser User name of the SQL user 327 * @param string $sqlpassword Password of the SQL user 328 * @param string $database Name of the database 329 * @param mixed $port Port of the database server 330 * @param bool $persistency 331 * @param bool $new_link Should a new connection be established 332 * @return mixed Connection ID on success, string error message otherwise 333 */ 334 public function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false); 335 336 /** 337 * Run binary AND operator on DB column. 338 * Results in sql statement: "{$column_name} & (1 << {$bit}) {$compare}" 339 * 340 * @param string $column_name The column name to use 341 * @param int $bit The value to use for the AND operator, 342 * will be converted to (1 << $bit). Is used by 343 * options, using the number schema: 0, 1, 2...29 344 * @param string $compare Any custom SQL code after the check (for example "= 0") 345 * @return string A SQL statement like: "{$column} & (1 << {$bit}) {$compare}" 346 */ 347 public function sql_bit_and($column_name, $bit, $compare = ''); 348 349 /** 350 * Free sql result 351 * 352 * @param mixed $query_id Already executed query result, 353 * if false, the last query will be used. 354 * @return null 355 */ 356 public function sql_freeresult($query_id = false); 357 358 /** 359 * Return number of sql queries and cached sql queries used 360 * 361 * @param bool $cached Should we return the number of cached or normal queries? 362 * @return int Number of queries that have been executed 363 */ 364 public function sql_num_queries($cached = false); 365 366 /** 367 * Run more than one insert statement. 368 * 369 * @param string $table Table name to run the statements on 370 * @param array $sql_ary Multi-dimensional array holding the statement data 371 * @return bool false if no statements were executed. 372 */ 373 public function sql_multi_insert($table, $sql_ary); 374 375 /** 376 * Return number of affected rows 377 * 378 * @return mixed Number of the affected rows by the last query 379 * false if no query has been run before 380 */ 381 public function sql_affectedrows(); 382 383 /** 384 * DBAL garbage collection, close SQL connection 385 * 386 * @return mixed False if no connection was opened before, 387 * Server response otherwise 388 */ 389 public function sql_close(); 390 391 /** 392 * Seek to given row number 393 * 394 * @param mixed $rownum Row number the curser should point to 395 * Note: $rownum is 0 based 396 * @param mixed $query_id ID of the query to set the row cursor on 397 * if false, the last query will be used. 398 * $query_id will then be set correctly 399 * @return bool False if something went wrong 400 */ 401 public function sql_rowseek($rownum, &$query_id); 402 403 /** 404 * Escape string used in sql query 405 * 406 * @param string $msg String to be escaped 407 * @return string Escaped version of $msg 408 */ 409 public function sql_escape($msg); 410 411 /** 412 * Correctly adjust LIKE expression for special characters 413 * Some DBMS are handling them in a different way 414 * 415 * @param string $expression The expression to use. Every wildcard is 416 * escaped, except $this->any_char and $this->one_char 417 * @return string A SQL statement like: "LIKE 'bertie_%'" 418 */ 419 public function sql_like_expression($expression); 420 421 /** 422 * Correctly adjust NOT LIKE expression for special characters 423 * Some DBMS are handling them in a different way 424 * 425 * @param string $expression The expression to use. Every wildcard is 426 * escaped, except $this->any_char and $this->one_char 427 * @return string A SQL statement like: "NOT LIKE 'bertie_%'" 428 */ 429 public function sql_not_like_expression($expression); 430 431 /** 432 * Explain queries 433 * 434 * @param string $mode Available modes: display, start, stop, 435 * add_select_row, fromcache, record_fromcache 436 * @param string $query The Query that should be explained 437 * @return mixed Either a full HTML page, boolean or null 438 */ 439 public function sql_report($mode, $query = ''); 440 441 /** 442 * Build IN or NOT IN sql comparison string, uses <> or = on single element 443 * arrays to improve comparison speed 444 * 445 * @param string $field Name of the sql column that shall be compared 446 * @param array $array Array of values that are (not) allowed 447 * @param bool $negate true for NOT IN (), false for IN () 448 * @param bool $allow_empty_set If true, allow $array to be empty, 449 * this function will return 1=1 or 1=0 then. 450 * @return string A SQL statement like: "IN (1, 2, 3, 4)" or "= 1" 451 */ 452 public function sql_in_set($field, $array, $negate = false, $allow_empty_set = false); 453 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Jan 11 00:25:41 2018 | Cross-referenced by PHPXref 0.7.1 |