Verzeichnisstruktur phpBB-3.3.15


Veröffentlicht
28.08.2024

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

driver_interface.php

Zuletzt modifiziert: 02.04.2025, 15:02 - Dateigröße: 14.59 KiB


001  <?php
002  /**
003  *
004  * This file is part of the phpBB Forum Software package.
005  *
006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
007  * @license GNU General Public License, version 2 (GPL-2.0)
008  *
009  * For full copyright and license information, please see
010  * the docs/CREDITS.txt file.
011  *
012  */
013   
014  namespace phpbb\db\driver;
015   
016  interface driver_interface
017  {
018      /**
019      * Set value for load_time debug parameter
020      *
021      * @param bool $value
022      */
023      public function set_debug_load_time($value);
024   
025      /**
026      * Set value for sql_explain debug parameter
027      *
028      * @param bool $value
029      */
030      public function set_debug_sql_explain($value);
031   
032      /**
033      * Gets the name of the sql layer.
034      *
035      * @return string
036      */
037      public function get_sql_layer();
038   
039      /**
040      * Gets the name of the database.
041      *
042      * @return string
043      */
044      public function get_db_name();
045   
046      /**
047      * Wildcards for matching any (%) character within LIKE expressions
048      *
049      * @return string
050      */
051      public function get_any_char();
052   
053      /**
054      * Wildcards for matching exactly one (_) character within LIKE expressions
055      *
056      * @return string
057      */
058      public function get_one_char();
059   
060      /**
061      * Gets the time spent into the queries
062      *
063      * @return int
064      */
065      public function get_sql_time();
066   
067      /**
068      * Gets the connect ID.
069      *
070      * @return mixed
071      */
072      public function get_db_connect_id();
073   
074      /**
075      * Indicates if an error was triggered.
076      *
077      * @return bool
078      */
079      public function get_sql_error_triggered();
080   
081      /**
082      * Gets the last faulty query
083      *
084      * @return string
085      */
086      public function get_sql_error_sql();
087   
088      /**
089      * Indicates if we are in a transaction.
090      *
091      * @return bool
092      */
093      public function get_transaction();
094   
095      /**
096      * Gets the returned error.
097      *
098      * @return array
099      */
100      public function get_sql_error_returned();
101   
102      /**
103      * Indicates if multiple insertion can be used
104      *
105      * @return bool
106      */
107      public function get_multi_insert();
108   
109      /**
110      * Set if multiple insertion can be used
111      *
112      * @param bool $multi_insert
113      */
114      public function set_multi_insert($multi_insert);
115   
116      /**
117      * Gets the exact number of rows in a specified table.
118      *
119      * @param string $table_name Table name
120      * @return string    Exact number of rows in $table_name.
121      */
122      public function get_row_count($table_name);
123   
124      /**
125      * Gets the estimated number of rows in a specified table.
126      *
127      * @param string $table_name Table name
128      * @return string    Number of rows in $table_name.
129      *                    Prefixed with ~ if estimated (otherwise exact).
130      */
131      public function get_estimated_row_count($table_name);
132   
133      /**
134      * Run LOWER() on DB column of type text (i.e. neither varchar nor char).
135      *
136      * @param string $column_name    The column name to use
137      * @return string        A SQL statement like "LOWER($column_name)"
138      */
139      public function sql_lower_text($column_name);
140   
141      /**
142      * Display sql error page
143      *
144      * @param string        $sql    The SQL query causing the error
145      * @return mixed        Returns the full error message, if $this->return_on_error
146      *                    is set, null otherwise
147      */
148      public function sql_error($sql = '');
149   
150      /**
151      * Returns whether results of a query need to be buffered to run a
152      * transaction while iterating over them.
153      *
154      * @return bool    Whether buffering is required.
155      */
156      public function sql_buffer_nested_transactions();
157   
158      /**
159      * Run binary OR operator on DB column.
160      *
161      * @param string    $column_name    The column name to use
162      * @param int    $bit            The value to use for the OR operator,
163      *                    will be converted to (1 << $bit). Is used by options,
164      *                    using the number schema... 0, 1, 2...29
165      * @param string    $compare    Any custom SQL code after the check (e.g. "= 0")
166      * @return string    A SQL statement like "$column | (1 << $bit) {$compare}"
167      */
168      public function sql_bit_or($column_name, $bit, $compare = '');
169   
170      /**
171      * Version information about used database
172      *
173      * @param bool $raw            Only return the fetched sql_server_version
174      * @param bool $use_cache    Is it safe to retrieve the value from the cache
175      * @return string sql server version
176      */
177      public function sql_server_info($raw = false, $use_cache = true);
178   
179      /**
180      * Return on error or display error message
181      *
182      * @param bool    $fail        Should we return on errors, or stop
183      * @return null
184      */
185      public function sql_return_on_error($fail = false);
186   
187      /**
188      * Build sql statement from an array
189      *
190      * @param    string    $query        Should be on of the following strings:
191      *                        INSERT, INSERT_SELECT, UPDATE, SELECT, DELETE
192      * @param    array    $assoc_ary    Array with "column => value" pairs
193      * @return    string        A SQL statement like "c1 = 'a' AND c2 = 'b'"
194      */
195      public function sql_build_array($query, $assoc_ary = array());
196   
197      /**
198      * Fetch all rows
199      *
200      * @param    mixed    $query_id    Already executed query to get the rows from,
201      *                                if false, the last query will be used.
202      * @return    mixed        Nested array if the query had rows, false otherwise
203      */
204      public function sql_fetchrowset($query_id = false);
205   
206      /**
207      * SQL Transaction
208      *
209      * @param    string    $status        Should be one of the following strings:
210      *                                begin, commit, rollback
211      * @return    mixed    Buffered, seekable result handle, false on error
212      */
213      public function sql_transaction($status = 'begin');
214   
215      /**
216      * Build a concatenated expression
217      *
218      * @param    string    $expr1        Base SQL expression where we append the second one
219      * @param    string    $expr2        SQL expression that is appended to the first expression
220      * @return    string        Concatenated string
221      */
222      public function sql_concatenate($expr1, $expr2);
223   
224      /**
225      * Build a case expression
226      *
227      * Note: The two statements action_true and action_false must have the same
228      * data type (int, vchar, ...) in the database!
229      *
230      * @param    string    $condition        The condition which must be true,
231      *                            to use action_true rather then action_else
232      * @param    string    $action_true    SQL expression that is used, if the condition is true
233      * @param    mixed    $action_false    SQL expression that is used, if the condition is false
234      * @return    string        CASE expression including the condition and statements
235      */
236      public function sql_case($condition, $action_true, $action_false = false);
237   
238      /**
239      * Build sql statement from array for select and select distinct statements
240      *
241      * Possible query values: SELECT, SELECT_DISTINCT
242      *
243      * @param    string    $query    Should be one of: SELECT, SELECT_DISTINCT
244      * @param    array    $array    Array with the query data:
245      *                    SELECT        A comma imploded list of columns to select
246      *                    FROM        Array with "table => alias" pairs,
247      *                                (alias can also be an array)
248      *        Optional:    LEFT_JOIN    Array of join entries:
249      *                        FROM        Table that should be joined
250      *                        ON            Condition for the join
251      *        Optional:    WHERE        Where SQL statement
252      *        Optional:    GROUP_BY    Group by SQL statement
253      *        Optional:    ORDER_BY    Order by SQL statement
254      * @return    string        A SQL statement ready for execution
255      */
256      public function sql_build_query($query, $array);
257   
258      /**
259      * Fetch field
260      * if rownum is false, the current row is used, else it is pointing to the row (zero-based)
261      *
262      * @param    string    $field        Name of the column
263      * @param    mixed    $rownum        Row number, if false the current row will be used
264      *                                and the row curser will point to the next row
265      *                                Note: $rownum is 0 based
266      * @param    mixed    $query_id    Already executed query to get the rows from,
267      *                                if false, the last query will be used.
268      * @return    mixed        String value of the field in the selected row,
269      *                        false, if the row does not exist
270      */
271      public function sql_fetchfield($field, $rownum = false, $query_id = false);
272   
273      /**
274      * Fetch current row
275      *
276      * @param    mixed    $query_id    Already executed query to get the rows from,
277      *                                if false, the last query will be used.
278      * @return    mixed        Array with the current row,
279      *                        false, if the row does not exist
280      */
281      public function sql_fetchrow($query_id = false);
282   
283      /**
284      * Returns SQL string to cast a string expression to an int.
285      *
286      * @param  string $expression An expression evaluating to string
287      * @return string             Expression returning an int
288      */
289      public function cast_expr_to_bigint($expression);
290   
291      /**
292       * Gets the ID of the **last** inserted row immediately after an INSERT
293       * statement.
294       *
295       * **Note**: Despite the name, the returned ID refers to the row that has
296       * just been inserted, rather than the hypothetical ID of the next row if a
297       * new one was to be inserted.
298       *
299       * The returned value can be used for selecting the item that has just been
300       * inserted or for updating another table with an ID pointing to that item.
301       *
302       * Alias of `sql_last_inserted_id`.
303       *
304       * @deprecated 3.3.11-RC1 Replaced by sql_last_inserted_id(), to be removed in 4.1.0-a1
305       *
306       * @return    string|false    Auto-incremented value of the last inserted row
307       */
308      public function sql_nextid();
309   
310      /**
311       * Gets the ID of the last inserted row immediately after an INSERT
312       * statement. The returned value can be used for selecting the item that has
313       * just been inserted or for updating another table with an ID pointing to
314       * that item.
315       *
316       * @return    string|false    Auto-incremented value of the last inserted row
317       */
318      public function sql_last_inserted_id();
319   
320      /**
321      * Add to query count
322      *
323      * @param bool $cached    Is this query cached?
324      * @return null
325      */
326      public function sql_add_num_queries($cached = false);
327   
328      /**
329      * Build LIMIT query
330      *
331      * @param    string    $query        The SQL query to execute
332      * @param    int        $total        The number of rows to select
333      * @param    int        $offset
334      * @param    int        $cache_ttl    Either 0 to avoid caching or
335      *                the time in seconds which the result shall be kept in cache
336      * @return    mixed    Buffered, seekable result handle, false on error
337      */
338      public function sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0);
339   
340      /**
341      * Base query method
342      *
343      * @param    string    $query        The SQL query to execute
344      * @param    int        $cache_ttl    Either 0 to avoid caching or
345      *                the time in seconds which the result shall be kept in cache
346      * @return    mixed    Buffered, seekable result handle, false on error
347      */
348      public function sql_query($query = '', $cache_ttl = 0);
349   
350      /**
351      * Returns SQL string to cast an integer expression to a string.
352      *
353      * @param    string    $expression        An expression evaluating to int
354      * @return string        Expression returning a string
355      */
356      public function cast_expr_to_string($expression);
357   
358      /**
359       * Connect to server
360       *
361       * @param    string    $sqlserver        Address of the database server
362       * @param    string    $sqluser        User name of the SQL user
363       * @param    string    $sqlpassword    Password of the SQL user
364       * @param    string    $database        Name of the database
365       * @param    mixed    $port            Port of the database server
366       * @param    bool    $persistency
367       * @param    bool    $new_link        Should a new connection be established
368       * @return    mixed    Connection ID on success, string error message otherwise
369       */
370      public function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false);
371   
372      /**
373      * Run binary AND operator on DB column.
374      * Results in sql statement: "{$column_name} & (1 << {$bit}) {$compare}"
375      *
376      * @param string    $column_name    The column name to use
377      * @param int    $bit            The value to use for the AND operator,
378      *                                will be converted to (1 << $bit). Is used by
379      *                                options, using the number schema: 0, 1, 2...29
380      * @param string    $compare        Any custom SQL code after the check (for example "= 0")
381      * @return string    A SQL statement like: "{$column} & (1 << {$bit}) {$compare}"
382      */
383      public function sql_bit_and($column_name, $bit, $compare = '');
384   
385      /**
386      * Free sql result
387      *
388      * @param    mixed    $query_id    Already executed query result,
389      *                                if false, the last query will be used.
390      * @return    null
391      */
392      public function sql_freeresult($query_id = false);
393   
394      /**
395      * Return number of sql queries and cached sql queries used
396      *
397      * @param    bool    $cached        Should we return the number of cached or normal queries?
398      * @return    int        Number of queries that have been executed
399      */
400      public function sql_num_queries($cached = false);
401   
402      /**
403      * Run more than one insert statement.
404      *
405      * @param string    $table        Table name to run the statements on
406      * @param array    $sql_ary    Multi-dimensional array holding the statement data
407      * @return bool        false if no statements were executed.
408      */
409      public function sql_multi_insert($table, $sql_ary);
410   
411      /**
412      * Return number of affected rows
413      *
414      * @return    mixed        Number of the affected rows by the last query
415      *                        false if no query has been run before
416      */
417      public function sql_affectedrows();
418   
419      /**
420      * DBAL garbage collection, close SQL connection
421      *
422      * @return    mixed        False if no connection was opened before,
423      *                        Server response otherwise
424      */
425      public function sql_close();
426   
427      /**
428      * Seek to given row number
429      *
430      * @param    mixed    $rownum        Row number the curser should point to
431      *                                Note: $rownum is 0 based
432      * @param    mixed    $query_id    ID of the query to set the row cursor on
433      *                                if false, the last query will be used.
434      *                                $query_id will then be set correctly
435      * @return    bool        False if something went wrong
436      */
437      public function sql_rowseek($rownum, &$query_id);
438   
439      /**
440      * Escape string used in sql query
441      *
442      * @param    string    $msg    String to be escaped
443      * @return    string        Escaped version of $msg
444      */
445      public function sql_escape($msg);
446   
447      /**
448      * Correctly adjust LIKE expression for special characters
449      * Some DBMS are handling them in a different way
450      *
451      * @param    string    $expression    The expression to use. Every wildcard is
452      *                        escaped, except $this->any_char and $this->one_char
453      * @return string    A SQL statement like: "LIKE 'bertie_%'"
454      */
455      public function sql_like_expression($expression);
456   
457      /**
458      * Correctly adjust NOT LIKE expression for special characters
459      * Some DBMS are handling them in a different way
460      *
461      * @param    string    $expression    The expression to use. Every wildcard is
462      *                        escaped, except $this->any_char and $this->one_char
463      * @return string    A SQL statement like: "NOT LIKE 'bertie_%'"
464      */
465      public function sql_not_like_expression($expression);
466   
467      /**
468      * Explain queries
469      *
470      * @param    string    $mode        Available modes: display, start, stop,
471       *                                add_select_row, fromcache, record_fromcache
472      * @param    string    $query        The Query that should be explained
473      * @return    mixed        Either a full HTML page, boolean or null
474      */
475      public function sql_report($mode, $query = '');
476   
477      /**
478      * Build IN or NOT IN sql comparison string, uses <> or = on single element
479      * arrays to improve comparison speed
480      *
481      * @param    string    $field            Name of the sql column that shall be compared
482      * @param    array    $array            Array of values that are (not) allowed
483      * @param    bool    $negate            true for NOT IN (), false for IN ()
484      * @param    bool    $allow_empty_set    If true, allow $array to be empty,
485      *                                this function will return 1=1 or 1=0 then.
486      * @return string    A SQL statement like: "IN (1, 2, 3, 4)" or "= 1"
487      */
488      public function sql_in_set($field, $array, $negate = false, $allow_empty_set = false);
489   
490      /**
491      * Quote identifiers used in sql query
492      *
493      * @param    string    $msg    String to be quoted
494      * @return    string        Quoted version of $msg
495      */
496      public function sql_quote($msg);
497   
498      /**
499       * Ensure query ID can be used by cache
500       *
501       * @param resource|int|string $query_id Mixed type query id
502       *
503       * @return int|string Query id in string or integer format
504       */
505      public function clean_query_id($query_id);
506  }
507