Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
0 / 0
100.00% covered (success)
100.00%
0 / 0
CRAP
100.00% covered (success)
100.00%
0 / 0
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\driver;
interface driver_interface
{
    /**
    * Gets the name of the sql layer.
    *
    * @return string
    */
    public function get_sql_layer();
    /**
    * Gets the name of the database.
    *
    * @return string
    */
    public function get_db_name();
    /**
    * Wildcards for matching any (%) character within LIKE expressions
    *
    * @return string
    */
    public function get_any_char();
    /**
    * Wildcards for matching exactly one (_) character within LIKE expressions
    *
    * @return string
    */
    public function get_one_char();
    /**
    * Gets the time spent into the queries
    *
    * @return int
    */
    public function get_sql_time();
    /**
    * Gets the connect ID.
    *
    * @return mixed
    */
    public function get_db_connect_id();
    /**
    * Indicates if an error was triggered.
    *
    * @return bool
    */
    public function get_sql_error_triggered();
    /**
    * Gets the last faulty query
    *
    * @return string
    */
    public function get_sql_error_sql();
    /**
    * Indicates if we are in a transaction.
    *
    * @return bool
    */
    public function get_transaction();
    /**
    * Gets the returned error.
    *
    * @return array
    */
    public function get_sql_error_returned();
    /**
    * Indicates if multiple insertion can be used
    *
    * @return bool
    */
    public function get_multi_insert();
    /**
    * Set if multiple insertion can be used
    *
    * @param bool $multi_insert
    */
    public function set_multi_insert($multi_insert);
    /**
    * Gets the exact number of rows in a specified table.
    *
    * @param string $table_name Table name
    * @return string    Exact number of rows in $table_name.
    */
    public function get_row_count($table_name);
    /**
    * Gets the estimated number of rows in a specified table.
    *
    * @param string $table_name Table name
    * @return string    Number of rows in $table_name.
    *                    Prefixed with ~ if estimated (otherwise exact).
    */
    public function get_estimated_row_count($table_name);
    /**
    * Run LOWER() on DB column of type text (i.e. neither varchar nor char).
    *
    * @param string $column_name    The column name to use
    * @return string        A SQL statement like "LOWER($column_name)"
    */
    public function sql_lower_text($column_name);
    /**
    * Display sql error page
    *
    * @param string        $sql    The SQL query causing the error
    * @return mixed        Returns the full error message, if $this->return_on_error
    *                    is set, null otherwise
    */
    public function sql_error($sql = '');
    /**
    * Returns whether results of a query need to be buffered to run a
    * transaction while iterating over them.
    *
    * @return bool    Whether buffering is required.
    */
    public function sql_buffer_nested_transactions();
    /**
    * Run binary OR operator on DB column.
    *
    * @param string    $column_name    The column name to use
    * @param int    $bit            The value to use for the OR operator,
    *                    will be converted to (1 << $bit). Is used by options,
    *                    using the number schema... 0, 1, 2...29
    * @param string    $compare    Any custom SQL code after the check (e.g. "= 0")
    * @return string    A SQL statement like "$column | (1 << $bit) {$compare}"
    */
    public function sql_bit_or($column_name, $bit, $compare = '');
    /**
    * Version information about used database
    *
    * @param bool $raw            Only return the fetched sql_server_version
    * @param bool $use_cache    Is it safe to retrieve the value from the cache
    * @return string sql server version
    */
    public function sql_server_info($raw = false, $use_cache = true);
    /**
    * Return on error or display error message
    *
    * @param bool    $fail        Should we return on errors, or stop
    * @return null
    */
    public function sql_return_on_error($fail = false);
    /**
    * Build sql statement from an array
    *
    * @param    string    $query        Should be on of the following strings:
    *                        INSERT, INSERT_SELECT, UPDATE, SELECT, DELETE
    * @param    array    $assoc_ary    Array with "column => value" pairs
    * @return    string        A SQL statement like "c1 = 'a' AND c2 = 'b'"
    */
    public function sql_build_array($query, $assoc_ary = array());
    /**
    * Fetch all rows
    *
    * @param    mixed    $query_id    Already executed query to get the rows from,
    *                                if false, the last query will be used.
    * @return    mixed        Nested array if the query had rows, false otherwise
    */
    public function sql_fetchrowset($query_id = false);
    /**
    * SQL Transaction
    *
    * @param    string    $status        Should be one of the following strings:
    *                                begin, commit, rollback
    * @return    mixed    Buffered, seekable result handle, false on error
    */
    public function sql_transaction($status = 'begin');
    /**
    * Build a concatenated expression
    *
    * @param    string    $expr1        Base SQL expression where we append the second one
    * @param    string    $expr2        SQL expression that is appended to the first expression
    * @return    string        Concatenated string
    */
    public function sql_concatenate($expr1, $expr2);
    /**
    * Build a case expression
    *
    * Note: The two statements action_true and action_false must have the same
    * data type (int, vchar, ...) in the database!
    *
    * @param    string    $condition        The condition which must be true,
    *                            to use action_true rather then action_else
    * @param    string    $action_true    SQL expression that is used, if the condition is true
    * @param    mixed    $action_false    SQL expression that is used, if the condition is false
    * @return    string        CASE expression including the condition and statements
    */
    public function sql_case($condition, $action_true, $action_false = false);
    /**
    * Build sql statement from array for select and select distinct statements
    *
    * Possible query values: SELECT, SELECT_DISTINCT
    *
    * @param    string    $query    Should be one of: SELECT, SELECT_DISTINCT
    * @param    array    $array    Array with the query data:
    *                    SELECT        A comma imploded list of columns to select
    *                    FROM        Array with "table => alias" pairs,
    *                                (alias can also be an array)
    *        Optional:    LEFT_JOIN    Array of join entries:
    *                        FROM        Table that should be joined
    *                        ON            Condition for the join
    *        Optional:    WHERE        Where SQL statement
    *        Optional:    GROUP_BY    Group by SQL statement
    *        Optional:    ORDER_BY    Order by SQL statement
    * @return    string        A SQL statement ready for execution
    */
    public function sql_build_query($query, $array);
    /**
    * Fetch field
    * if rownum is false, the current row is used, else it is pointing to the row (zero-based)
    *
    * @param    string    $field        Name of the column
    * @param    mixed    $rownum        Row number, if false the current row will be used
    *                                and the row curser will point to the next row
    *                                Note: $rownum is 0 based
    * @param    mixed    $query_id    Already executed query to get the rows from,
    *                                if false, the last query will be used.
    * @return    mixed        String value of the field in the selected row,
    *                        false, if the row does not exist
    */
    public function sql_fetchfield($field, $rownum = false, $query_id = false);
    /**
    * Fetch current row
    *
    * @param    mixed    $query_id    Already executed query to get the rows from,
    *                                if false, the last query will be used.
    * @return    mixed        Array with the current row,
    *                        false, if the row does not exist
    */
    public function sql_fetchrow($query_id = false);
    /**
    * Returns SQL string to cast a string expression to an int.
    *
    * @param  string $expression An expression evaluating to string
    * @return string             Expression returning an int
    */
    public function cast_expr_to_bigint($expression);
    /**
    * Get last inserted id after insert statement
    *
    * @return    string        Autoincrement value of the last inserted row
    */
    public function sql_nextid();
    /**
    * Add to query count
    *
    * @param bool $cached    Is this query cached?
    * @return null
    */
    public function sql_add_num_queries($cached = false);
    /**
    * Build LIMIT query
    *
    * @param    string    $query        The SQL query to execute
    * @param    int        $total        The number of rows to select
    * @param    int        $offset
    * @param    int        $cache_ttl    Either 0 to avoid caching or
    *                the time in seconds which the result shall be kept in cache
    * @return    mixed    Buffered, seekable result handle, false on error
    */
    public function sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0);
    /**
    * Base query method
    *
    * @param    string    $query        The SQL query to execute
    * @param    int        $cache_ttl    Either 0 to avoid caching or
    *                the time in seconds which the result shall be kept in cache
    * @return    mixed    Buffered, seekable result handle, false on error
    */
    public function sql_query($query = '', $cache_ttl = 0);
    /**
    * Returns SQL string to cast an integer expression to a string.
    *
    * @param    string    $expression        An expression evaluating to int
    * @return string        Expression returning a string
    */
    public function cast_expr_to_string($expression);
    /**
     * Connect to server
     *
     * @param    string    $sqlserver        Address of the database server
     * @param    string    $sqluser        User name of the SQL user
     * @param    string    $sqlpassword    Password of the SQL user
     * @param    string    $database        Name of the database
     * @param    mixed    $port            Port of the database server
     * @param    bool    $persistency
     * @param    bool    $new_link        Should a new connection be established
     * @return    mixed    Connection ID on success, string error message otherwise
     */
    public function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false);
    /**
    * Run binary AND operator on DB column.
    * Results in sql statement: "{$column_name} & (1 << {$bit}) {$compare}"
    *
    * @param string    $column_name    The column name to use
    * @param int    $bit            The value to use for the AND operator,
    *                                will be converted to (1 << $bit). Is used by
    *                                options, using the number schema: 0, 1, 2...29
    * @param string    $compare        Any custom SQL code after the check (for example "= 0")
    * @return string    A SQL statement like: "{$column} & (1 << {$bit}) {$compare}"
    */
    public function sql_bit_and($column_name, $bit, $compare = '');
    /**
    * Free sql result
    *
    * @param    mixed    $query_id    Already executed query result,
    *                                if false, the last query will be used.
    * @return    null
    */
    public function sql_freeresult($query_id = false);
    /**
    * Return number of sql queries and cached sql queries used
    *
    * @param    bool    $cached        Should we return the number of cached or normal queries?
    * @return    int        Number of queries that have been executed
    */
    public function sql_num_queries($cached = false);
    /**
    * Run more than one insert statement.
    *
    * @param string    $table        Table name to run the statements on
    * @param array    $sql_ary    Multi-dimensional array holding the statement data
    * @return bool        false if no statements were executed.
    */
    public function sql_multi_insert($table, $sql_ary);
    /**
    * Return number of affected rows
    *
    * @return    mixed        Number of the affected rows by the last query
    *                        false if no query has been run before
    */
    public function sql_affectedrows();
    /**
    * DBAL garbage collection, close SQL connection
    *
    * @return    mixed        False if no connection was opened before,
    *                        Server response otherwise
    */
    public function sql_close();
    /**
    * Seek to given row number
    *
    * @param    mixed    $rownum        Row number the curser should point to
    *                                Note: $rownum is 0 based
    * @param    mixed    $query_id    ID of the query to set the row cursor on
    *                                if false, the last query will be used.
    *                                $query_id will then be set correctly
    * @return    bool        False if something went wrong
    */
    public function sql_rowseek($rownum, &$query_id);
    /**
    * Escape string used in sql query
    *
    * @param    string    $msg    String to be escaped
    * @return    string        Escaped version of $msg
    */
    public function sql_escape($msg);
    /**
    * Correctly adjust LIKE expression for special characters
    * Some DBMS are handling them in a different way
    *
    * @param    string    $expression    The expression to use. Every wildcard is
    *                        escaped, except $this->any_char and $this->one_char
    * @return string    A SQL statement like: "LIKE 'bertie_%'"
    */
    public function sql_like_expression($expression);
    /**
    * Correctly adjust NOT LIKE expression for special characters
    * Some DBMS are handling them in a different way
    *
    * @param    string    $expression    The expression to use. Every wildcard is
    *                        escaped, except $this->any_char and $this->one_char
    * @return string    A SQL statement like: "NOT LIKE 'bertie_%'"
    */
    public function sql_not_like_expression($expression);
    /**
    * Explain queries
    *
    * @param    string    $mode        Available modes: display, start, stop,
     *                                add_select_row, fromcache, record_fromcache
    * @param    string    $query        The Query that should be explained
    * @return    mixed        Either a full HTML page, boolean or null
    */
    public function sql_report($mode, $query = '');
    /**
    * Build IN or NOT IN sql comparison string, uses <> or = on single element
    * arrays to improve comparison speed
    *
    * @param    string    $field            Name of the sql column that shall be compared
    * @param    array    $array            Array of values that are (not) allowed
    * @param    bool    $negate            true for NOT IN (), false for IN ()
    * @param    bool    $allow_empty_set    If true, allow $array to be empty,
    *                                this function will return 1=1 or 1=0 then.
    * @return string    A SQL statement like: "IN (1, 2, 3, 4)" or "= 1"
    */
    public function sql_in_set($field, $array, $negate = false, $allow_empty_set = false);
}