class DB extends MySQLAdapter

Database Wrapper (mySQL)

Properties

int $server_version from MySQLAdapter
mysqli_result $last_result from MySQLAdapter
int $query_count from MySQLAdapter
protected int $debug_query_count from MySQLAdapter
array $debug_profile from MySQLAdapter
string|false $debug_last_query from MySQLAdapter
int|false $debug_last_status from MySQLAdapter
$link
protected $server
protected $username
protected $password
protected $db
protected int $port from MySQLAdapter
protected int $charset from MySQLAdapter
protected $connection_retries
protected bool $autocommit from MySQLAdapter
protected bool $fatal_on_error from MySQLAdapter

Methods

__construct(string $server = XF_DB_SERVER, string $username = XF_DB_USER, string $password = XF_DB_PASS, string $db = XF_DB_DATABASE, string $charset = 'utf8', bool $fatal_on_error = true, int $port = 3306)

Constructur for Database Wrapper

array
get_server_vars()

Server Variables

bool
is_cluster()

Is Database a Galera Cluster?

bool|null
can_create_tmp_tables()

Can the current user create temporary tables?

null
connect(string $charset = 'utf8')

Connects to the database

void
set_timezone(string $timezone)

Set the TimeZone for the current mySQL Connection

void
__sleep()

PHP __sleep -> Disconnect Server in case of object serialization

void
__destruct()

Disconnect Server in case of object destruction

void
__wakeup()

PHP __wakeup ->Re-Connect Server in case of object unserialize

int
get_query_count()

Returns the number of executed queries since connecting the database server

mixed|null
lquery($query, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, bool $cache_ttl = false, bool $cache_group = false, bool $query_type = false)

Execute Query Wrapper for Languages

mixed
lpquery($query, $params, string $file = __FILE__, int $line = __LINE__, int $cache_ttl = 0, null $cache_group = null)

Execute PQuery Wrapper for Languages

bool|mysqli_result
rquery(string $query)

Execute Query (Return Ressource uses MYSQLI_USE_RESULT) - no builtin Error Handling (ON PURPOSE)

void
rclose()

Free/Close Result Query (Use after rquery)

mixed
pquery(string $query, array $params = array(), string $file = __FILE__, int|string $line = __LINE__, int $cache_ttl = 0, null $cache_group = null)

Prepared Statement Query

string
check_query(string $query)

Checks the passed SQL query string for system-wide table placeholder markers and returns the query with the corresponding replacements e.g. ###sys|tablename### will be replaced to use the correct system table prefix

string
check_query_cb($matches)

put your comment there.

mixed
query_with_params(string $query, array $params, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, int $cache_ttl = null, string $cache_group = null, string $query_type = null)

Execute Query (Return Result Array/Count) with passing of parameters e.g. use "SELECT * FROM tbl WHERE id = :id" as query and pass the value for "id" as params array ['id'=>2] All passed values will be automatically escaped for security reasons

mixed
query(string $query, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, int $cache_ttl = null, string $cache_group = null, string $query_type = null)

Execute Query (Return Result Array/Count)

bool|mixed
insert(string $table, array $values)

Inserts the passed values into the given table

bool|mixed
update(string $table, array $values, array $where, int $limit = 1)

Updates the table using the passed values

null|string|string[]
replace_query_placeholder(string $query, array $vars, string $format = 'value', array $value_list = [])

Pass a query with placeholders and pass values for placeholders as keyed array. The function will replace all placeholder with their respective values from the array and escape them accordingly

static boolean
secure_query(string $query, int $allowed = XF_QUERY_ALLOW_NONE)

Check Query to avoid SQL Injections

string
error()

Returns a string description of the last error

int
errno()

Returns the error code for the most recent function call

bool
close()

Close DB Connection

bool
table_exists(string $table_name)

No description

array|bool
get_table_structure(string $table_name)

No description

string
escape_string(string $string, bool $auto_format_number = true)

No description

array
extract_search_term(string $search_term)

No description

collect_debug_profiling(mixed $force = false, string $query = null, bool|string $file = false, bool|string $line = false, bool|mysqli_result $result = false)

Collect Profiling Infos from Database if in DEVMODE

prepare_debug_profiling()

Prepare Profiling Infos from Database if in DEVMODE

array
get_database_status()

Returns the "SHOW STATUS" result in an array

mixed
auto_query(string $type = 'insert', string $table, array $values = null, array $params = array(), string $FILE = __FILE__, int $LINE = __LINE__, bool $query_type = false)

No description

void
debug()

Prints information about the last query and it's result code

bool
set_autocommit(bool $mode)

No description

void
begin_transaction()

No description

bool
commit()

No description

bool
rollback()

No description

mysqli
get_link()

Returns the mysqli link object

string
get_charset()

No description

bool
has_utf8mb4_support()

Returns true if the current mySQL server supports utf8mb4 (Emoji)

Details

in MySQLAdapter at line 87
__construct(string $server = XF_DB_SERVER, string $username = XF_DB_USER, string $password = XF_DB_PASS, string $db = XF_DB_DATABASE, string $charset = 'utf8', bool $fatal_on_error = true, int $port = 3306)

Constructur for Database Wrapper

Initializes database connection

Parameters

string $server
string $username
string $password
string $db
string $charset Database Server host (IP or hostname)
bool $fatal_on_error fatal abbort on connection error, default true
int $port

in MySQLAdapter at line 133
array get_server_vars()

Server Variables

Return Value

array

Exceptions

Exception

in MySQLAdapter at line 146
bool is_cluster()

Is Database a Galera Cluster?

Return Value

bool

Exceptions

Exception

in MySQLAdapter at line 155
bool|null can_create_tmp_tables()

Can the current user create temporary tables?

Return Value

bool|null

in MySQLAdapter at line 177
null connect(string $charset = 'utf8')

Connects to the database

Parameters

string $charset

Return Value

null

Exceptions

Exception

in MySQLAdapter at line 266
void set_timezone(string $timezone)

Set the TimeZone for the current mySQL Connection

Parameters

string $timezone TimeZone in mySQL Timezone format

Return Value

void

in MySQLAdapter at line 276
void __sleep()

PHP __sleep -> Disconnect Server in case of object serialization

Return Value

void

in MySQLAdapter at line 286
void __destruct()

Disconnect Server in case of object destruction

Return Value

void

in MySQLAdapter at line 295
void __wakeup()

PHP __wakeup ->Re-Connect Server in case of object unserialize

Return Value

void

in MySQLAdapter at line 304
int get_query_count()

Returns the number of executed queries since connecting the database server

Return Value

int

in MySQLAdapter at line 321
mixed|null lquery($query, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, bool $cache_ttl = false, bool $cache_group = false, bool $query_type = false)

Execute Query Wrapper for Languages

Parameters

$query
string $result_type
string $file
int $line
bool $cache_ttl
bool $cache_group
bool $query_type

Return Value

mixed|null

in MySQLAdapter at line 418
mixed lpquery($query, $params, string $file = __FILE__, int $line = __LINE__, int $cache_ttl = 0, null $cache_group = null)

Execute PQuery Wrapper for Languages

Parameters

$query
$params
string $file
int $line
int $cache_ttl
null $cache_group

Return Value

mixed

Exceptions

Exception

in MySQLAdapter at line 434
bool|mysqli_result rquery(string $query)

Execute Query (Return Ressource uses MYSQLI_USE_RESULT) - no builtin Error Handling (ON PURPOSE)

Parameters

string $query SQL Query

Return Value

bool|mysqli_result Returns resource to the data source

Exceptions

Exception

in MySQLAdapter at line 450
void rclose()

Free/Close Result Query (Use after rquery)

Return Value

void

in MySQLAdapter at line 470
mixed pquery(string $query, array $params = array(), string $file = __FILE__, int|string $line = __LINE__, int $cache_ttl = 0, null $cache_group = null)

Prepared Statement Query

Parameters

string $query SQL Query with classic markers (?) or named marker (e.g. ':name')
array $params Simple Array (for classic marker - must be the same order as in SQL) OR Assoc Array (for named marker)
string $file DEBUG Filename (FILE)
int|string $line DEBUG Line (LINE)
int $cache_ttl TTL in seconds
null $cache_group Cache PREFIX for removal

Return Value

mixed

Exceptions

Exception

in MySQLAdapter at line 621
string check_query(string $query)

Checks the passed SQL query string for system-wide table placeholder markers and returns the query with the corresponding replacements e.g. ###sys|tablename### will be replaced to use the correct system table prefix

Parameters

string $query SQL Query String (with system-wide table name placeholders e.g. ###sys|tablename###)

Return Value

string SQL Query String

in MySQLAdapter at line 633
string check_query_cb($matches)

put your comment there.

..

Parameters

$matches SQL Query String

Return Value

string SQL Query String

in MySQLAdapter at line 671
mixed query_with_params(string $query, array $params, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, int $cache_ttl = null, string $cache_group = null, string $query_type = null)

Execute Query (Return Result Array/Count) with passing of parameters e.g. use "SELECT * FROM tbl WHERE id = :id" as query and pass the value for "id" as params array ['id'=>2] All passed values will be automatically escaped for security reasons

Parameters

string $query SQL Query
array $params Assoc Array with placeholder values
string $result_type Fetch function that is used for SELECT queries
string $file DEBUG Filename (FILE)
int $line DEBUG Line (LINE)
int $cache_ttl Cache TTL (Negativ TTL invalidates and refreshes existing caches)
string $cache_group Cache Group
string $query_type reference to string indicates if query was an update/delete or an insert (INSERT, UPDATE, DELETE)

Return Value

mixed Returns false in case of error, Returns the number of affected rows in case of UPDATE/DELETE statement, Returns a result array in case of SELECT statement

Exceptions

Exception

in MySQLAdapter at line 694
mixed query(string $query, string $result_type = "mysql_fetch_array", string $file = __FILE__, int $line = __LINE__, int $cache_ttl = null, string $cache_group = null, string $query_type = null)

Execute Query (Return Result Array/Count)

Parameters

string $query SQL Query
string $result_type Fetch function that is used for SELECT queries
string $file DEBUG Filename (FILE)
int $line DEBUG Line (LINE)
int $cache_ttl Cache TTL (Negativ TTL invalidates and refreshes existing caches)
string $cache_group Cache Group
string $query_type reference to string indicates if query was an update/delete or an insert (INSERT, UPDATE, DELETE)

Return Value

mixed Returns false in case of error, Returns the number of affected rows in case of UPDATE/DELETE statement, Returns a result array in case of SELECT statement

Exceptions

DatabaseException
Exception

in MySQLAdapter at line 926
bool|mixed insert(string $table, array $values)

Inserts the passed values into the given table

Parameters

string $table
array $values Assoc-Array, e.g. array('fieldname'=>'fieldvalue', ....)

Return Value

bool|mixed

in MySQLAdapter at line 945
bool|mixed update(string $table, array $values, array $where, int $limit = 1)

Updates the table using the passed values

Parameters

string $table
array $values Assoc-Array, e.g. array('fieldname'=>'fieldvalue', ....)
array $where
int $limit

Return Value

bool|mixed

in MySQLAdapter at line 987
null|string|string[] replace_query_placeholder(string $query, array $vars, string $format = 'value', array $value_list = [])

Pass a query with placeholders and pass values for placeholders as keyed array. The function will replace all placeholder with their respective values from the array and escape them accordingly

Parameters

string $query Query String with placeholders
array $vars Assoc-Array with keys being the placeholder names, e.g. ['firstname'=>'Daniel'] can be referenced with ' :firstname ' in query
string $format REturn Format: 'value' -> Returns the query with the values inserted OR 'prepared_statement' -> Returns the query with ? placeholders and the respective values in $value_list
array $value_list Returns the used values in the order as they are being used in the query

Return Value

null|string|string[]

Exceptions

DatabaseException

in MySQLAdapter at line 1022
static boolean secure_query(string $query, int $allowed = XF_QUERY_ALLOW_NONE)

Check Query to avoid SQL Injections

Parameters

string $query
int $allowed

Return Value

boolean

in MySQLAdapter at line 1081
string error()

Returns a string description of the last error

Return Value

string error

in MySQLAdapter at line 1091
int errno()

Returns the error code for the most recent function call

Return Value

int errno

in MySQLAdapter at line 1102
bool close()

Close DB Connection

Return Value

bool errno

in MySQLAdapter at line 1121
bool table_exists(string $table_name)

Parameters

string $table_name

Return Value

bool

in MySQLAdapter at line 1142
array|bool get_table_structure(string $table_name)

Parameters

string $table_name

Return Value

array|bool multi-dim array with table structure

in MySQLAdapter at line 1183
string escape_string(string $string, bool $auto_format_number = true)

Parameters

string $string String to be escaped
bool $auto_format_number If enabled float values will be converted to the correct mySQL syntax

Return Value

string escaped string

in MySQLAdapter at line 1220
array extract_search_term(string $search_term)

Parameters

string $search_term Search Term (e.g. master AND proxy OR tennis), Support for AND, OR, and ""

Return Value

array 2-dim array with search term parts $return['mode'], $return['term']

in MySQLAdapter at line 1290
collect_debug_profiling(mixed $force = false, string $query = null, bool|string $file = false, bool|string $line = false, bool|mysqli_result $result = false)

Collect Profiling Infos from Database if in DEVMODE

Parameters

mixed $force
string $query
bool|string $file
bool|string $line
bool|mysqli_result $result

in MySQLAdapter at line 1328
prepare_debug_profiling()

Prepare Profiling Infos from Database if in DEVMODE

in MySQLAdapter at line 1341
array get_database_status()

Returns the "SHOW STATUS" result in an array

Return Value

array

in MySQLAdapter at line 1369
mixed auto_query(string $type = 'insert', string $table, array $values = null, array $params = array(), string $FILE = __FILE__, int $LINE = __LINE__, bool $query_type = false)

Parameters

string $type Type of query [insert, replace, select, update]
string $table Table Name
array $values 1-dim Array with field names (select) or 2-dim Array with field names and their field values
array $params 2-dim Array with additional options $params['table_structure'] --> Pass table structure array to perform additional auto-transformation based on field information $params['where'] --> Where condition, e.g. where=>'id=1' $params['limit'] --> Limit condition, e.g. limit=>'1,10' $params['order_by'] --> Order condition, e.g. order_by='id ASC'
string $FILE
int $LINE
bool $query_type

Return Value

mixed Returns DB->query result

Exceptions

Exception

in MySQLAdapter at line 1534
void debug()

Prints information about the last query and it's result code

Return Value

void

in MySQLAdapter at line 1546
bool set_autocommit(bool $mode)

Parameters

bool $mode enable or disable autocommit

Return Value

bool success

in MySQLAdapter at line 1555
void begin_transaction()

Return Value

void

in MySQLAdapter at line 1565
bool commit()

Return Value

bool Commit Status

in MySQLAdapter at line 1575
bool rollback()

Return Value

bool Rollback Status

Returns the mysqli link object

Return Value

mysqli

in MySQLAdapter at line 1591
string get_charset()

Return Value

string Get the current Charset

in MySQLAdapter at line 1599
bool has_utf8mb4_support()

Returns true if the current mySQL server supports utf8mb4 (Emoji)

Return Value

bool