phpBB API Documentation
Class

phpbb\db\driver\driver

abstract class driver implements driver_interface

Database Abstraction Layer

Constants

LOGICAL_OP

STATEMENTS

LEFT_STMT

COMPARE_OP

RIGHT_STMT

SUBQUERY_OP

SUBQUERY_SELECT_TYPE

SUBQUERY_BUILD

Properties

$db_connect_id
$query_result
$return_on_error
$transaction
$sql_time
$num_queries
$open_queries
$curtime
$query_hold
$html_hold
$sql_report
$persistency
$user
$server
$dbname
$sql_error_triggered
$sql_error_sql
$sql_error_returned
$transactions
$multi_insert
$sql_layer Current sql layer
$any_char Wildcards for matching any (%) or exactly one (_) character within LIKE expressions
$one_char
$sql_server_version Exact version of the DBAL, directly queried

Methods

__construct()

Constructor

string get_sql_layer()

Gets the name of the sql layer.

string get_db_name()

Gets the name of the database.

string get_any_char()

Wildcards for matching any (%) character within LIKE expressions

string get_one_char()

Wildcards for matching exactly one (_) character within LIKE expressions

mixed get_db_connect_id()

Gets the connect ID.

bool get_sql_error_triggered()

Indicates if an error was triggered.

string get_sql_error_sql()

Gets the last faulty query

bool get_transaction()

Indicates if we are in a transaction.

int get_sql_time()

Gets the time spent into the queries

array get_sql_error_returned()

Gets the returned error.

bool get_multi_insert()

Indicates if multiple insertion can be used

set_multi_insert(bool $multi_insert)

Set if multiple insertion can be used

null sql_return_on_error(bool $fail = false)

Return on error or display error message

sql_num_queries($cached = false)

Return number of sql queries and cached sql queries used

null sql_add_num_queries(bool $cached = false)

Add to query count

sql_close()

DBAL garbage collection, close SQL connection

sql_query_limit($query, $total, $offset, $cache_ttl)

Build LIMIT query

sql_fetchrowset($query_id = false)

Fetch all rows

sql_rowseek($rownum, $query_id)

Seek to given row number

sql_fetchfield($field, $rownum = false, $query_id = false)

Fetch field if rownum is false, the current row is used, else it is pointing to the row (zero-based)

string sql_like_expression($expression)

Correctly adjust LIKE expression for special characters Some DBMS are handling them in a different way

string sql_not_like_expression($expression)

Correctly adjust NOT LIKE expression for special characters Some DBMS are handling them in a different way

sql_case($condition, $action_true, $action_false = false)

Build a case expression

sql_concatenate($expr1, $expr2)

Build a concatenated expression

bool sql_buffer_nested_transactions()

Returns whether results of a query need to be buffered to run a transaction while iterating over them.

sql_transaction($status = 'begin')

SQL Transaction

sql_build_array($query, $assoc_ary = false)

Build sql statement from an array

string sql_in_set($field, $array, $negate = false, $allow_empty_set = false)

Build IN or NOT IN sql comparison string, uses <> or = on single element arrays to improve comparison speed

string sql_bit_and(string $column_name, int $bit, string $compare = '')

Run binary AND operator on DB column.

string sql_bit_or(string $column_name, int $bit, string $compare = '')

Run binary OR operator on DB column.

string cast_expr_to_bigint(string $expression)

Returns SQL string to cast a string expression to an int.

string cast_expr_to_string($expression)

Returns SQL string to cast an integer expression to a string.

string sql_lower_text(string $column_name)

Run LOWER() on DB column of type text (i.e.

bool sql_multi_insert(string $table, array $sql_ary)

Run more than one insert statement.

_sql_validate_value($var)

Function for validating values

sql_build_query($query, $array)

Build sql statement from array for select and select distinct statements

mixed sql_error(string $sql = '')

Display sql error page

sql_report($mode, $query = '')

Explain queries

string get_estimated_row_count(string $table_name)

Gets the estimated number of rows in a specified table.

string get_row_count(string $table_name)

Gets the exact number of rows in a specified table.

Details

at line 81
public __construct()

Constructor

at line 101
public string get_sql_layer()

Gets the name of the sql layer.

Return Value

string

at line 109
public string get_db_name()

Gets the name of the database.

Return Value

string

at line 117
public string get_any_char()

Wildcards for matching any (%) character within LIKE expressions

Return Value

string

at line 125
public string get_one_char()

Wildcards for matching exactly one (_) character within LIKE expressions

Return Value

string

at line 133
public mixed get_db_connect_id()

Gets the connect ID.

Return Value

mixed

at line 141
public bool get_sql_error_triggered()

Indicates if an error was triggered.

Return Value

bool

at line 149
public string get_sql_error_sql()

Gets the last faulty query

Return Value

string

at line 157
public bool get_transaction()

Indicates if we are in a transaction.

Return Value

bool

at line 165
public int get_sql_time()

Gets the time spent into the queries

Return Value

int

at line 173
public array get_sql_error_returned()

Gets the returned error.

Return Value

array

at line 181
public bool get_multi_insert()

Indicates if multiple insertion can be used

Return Value

bool

at line 189
public set_multi_insert(bool $multi_insert)

Set if multiple insertion can be used

Parameters

bool $multi_insert

at line 197
public null sql_return_on_error(bool $fail = false)

Return on error or display error message

Parameters

bool $fail Should we return on errors, or stop

Return Value

null

at line 208
public sql_num_queries($cached = false)

Return number of sql queries and cached sql queries used

Parameters

$cached

at line 216
public null sql_add_num_queries(bool $cached = false)

Add to query count

Parameters

bool $cached Is this query cached?

Return Value

null

at line 226
public sql_close()

DBAL garbage collection, close SQL connection

at line 259
public sql_query_limit($query, $total, $offset, $cache_ttl)

Build LIMIT query

Parameters

$query
$total
$offset
$cache_ttl

at line 276
public sql_fetchrowset($query_id = false)

Fetch all rows

Parameters

$query_id

at line 300
public sql_rowseek($rownum, $query_id)

Seek to given row number

Parameters

$rownum
$query_id

at line 342
public sql_fetchfield($field, $rownum = false, $query_id = false)

Fetch field if rownum is false, the current row is used, else it is pointing to the row (zero-based)

Parameters

$field
$rownum
$query_id

at line 373
public string sql_like_expression($expression)

Correctly adjust LIKE expression for special characters Some DBMS are handling them in a different way

Parameters

$expression

Return Value

string A SQL statement like: "LIKE 'bertie_%'"

at line 384
public string sql_not_like_expression($expression)

Correctly adjust NOT LIKE expression for special characters Some DBMS are handling them in a different way

Parameters

$expression

Return Value

string A SQL statement like: "NOT LIKE 'bertie_%'"

at line 395
public sql_case($condition, $action_true, $action_false = false)

Build a case expression

Note: The two statements actiontrue and actionfalse must have the same data type (int, vchar, ...) in the database!

Parameters

$condition
$action_true
$action_false

at line 407
public sql_concatenate($expr1, $expr2)

Build a concatenated expression

Parameters

$expr1
$expr2

at line 415
public bool sql_buffer_nested_transactions()

Returns whether results of a query need to be buffered to run a transaction while iterating over them.

Return Value

bool Whether buffering is required.

at line 423
public sql_transaction($status = 'begin')

SQL Transaction

Parameters

$status

at line 490
public sql_build_array($query, $assoc_ary = false)

Build sql statement from an array

Parameters

$query
$assoc_ary

at line 538
public string sql_in_set($field, $array, $negate = false, $allow_empty_set = false)

Build IN or NOT IN sql comparison string, uses <> or = on single element arrays to improve comparison speed

Parameters

$field
$array
$negate
$allow_empty_set

Return Value

string A SQL statement like: "IN (1, 2, 3, 4)" or "= 1"

at line 583
public string sql_bit_and(string $column_name, int $bit, string $compare = '')

Run binary AND operator on DB column.

Results in sql statement: "{$column_name} & (1 << {$bit}) {$compare}"

Parameters

string $column_name The column name to use
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
string $compare Any custom SQL code after the check (for example "= 0")

Return Value

string A SQL statement like: "{$column} & (1 << {$bit}) {$compare}"

at line 596
public string sql_bit_or(string $column_name, int $bit, string $compare = '')

Run binary OR operator on DB column.

Parameters

string $column_name The column name to use
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
string $compare Any custom SQL code after the check (e.g. "= 0")

Return Value

string A SQL statement like "$column | (1 << $bit) {$compare}"

at line 609
public string cast_expr_to_bigint(string $expression)

Returns SQL string to cast a string expression to an int.

Parameters

string $expression An expression evaluating to string

Return Value

string Expression returning an int

at line 617
public string cast_expr_to_string($expression)

Returns SQL string to cast an integer expression to a string.

Parameters

$expression

Return Value

string Expression returning a string

at line 625
public string sql_lower_text(string $column_name)

Run LOWER() on DB column of type text (i.e.

neither varchar nor char).

Parameters

string $column_name The column name to use

Return Value

string A SQL statement like "LOWER($column_name)"

at line 633
public bool sql_multi_insert(string $table, array $sql_ary)

Run more than one insert statement.

Parameters

string $table Table name to run the statements on
array $sql_ary Multi-dimensional array holding the statement data

Return Value

bool false if no statements were executed.

at line 686
public _sql_validate_value($var)

Function for validating values

Parameters

$var

at line 705
public sql_build_query($query, $array)

Build sql statement from array for select and select distinct statements

Possible query values: SELECT, SELECT_DISTINCT

Parameters

$query
$array

at line 943
public mixed sql_error(string $sql = '')

Display sql error page

Parameters

string $sql The SQL query causing the error

Return Value

mixed Returns the full error message, if $this->returnonerror is set, null otherwise

at line 1013
public sql_report($mode, $query = '')

Explain queries

Parameters

$mode
$query

at line 1204
public string get_estimated_row_count(string $table_name)

Gets the estimated number of rows in a specified table.

Parameters

string $table_name Table name

Return Value

string Number of rows in $table_name. Prefixed with ~ if estimated (otherwise exact).

at line 1212
public string get_row_count(string $table_name)

Gets the exact number of rows in a specified table.

Parameters

string $table_name Table name

Return Value

string Exact number of rows in $table_name.