phpBB API Documentation
Class

phpbb\db\driver\mssql_odbc

class mssql_odbc extends mssql_base

Unified ODBC functions Unified ODBC functions support any database having ODBC driver, for example Adabas D, IBM DB2, iODBC, Solid, Sybase SQL Anywhere...

Here we only support MSSQL Server 2000+ because of the provided schema

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
$last_query_text
$connect_error

Methods

__construct()

Constructor

from driver
string get_sql_layer()

Gets the name of the sql layer.

from driver
string get_db_name()

Gets the name of the database.

from driver
string get_any_char()

Wildcards for matching any (%) character within LIKE expressions

from driver
string get_one_char()

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

from driver
mixed get_db_connect_id()

Gets the connect ID.

from driver
bool get_sql_error_triggered()

Indicates if an error was triggered.

from driver
string get_sql_error_sql()

Gets the last faulty query

from driver
bool get_transaction()

Indicates if we are in a transaction.

from driver
int get_sql_time()

Gets the time spent into the queries

from driver
array get_sql_error_returned()

Gets the returned error.

from driver
bool get_multi_insert()

Indicates if multiple insertion can be used

from driver
set_multi_insert(bool $multi_insert)

Set if multiple insertion can be used

from driver
null sql_return_on_error(bool $fail = false)

Return on error or display error message

from driver
sql_num_queries($cached = false)

Return number of sql queries and cached sql queries used

from driver
null sql_add_num_queries(bool $cached = false)

Add to query count

from driver
sql_close()

DBAL garbage collection, close SQL connection

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

Build LIMIT query

from driver
sql_fetchrowset($query_id = false)

Fetch all rows

from driver
sql_rowseek($rownum, $query_id)

Seek to given row number

from driver
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)

from driver
string sql_like_expression($expression)

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

from driver
string sql_not_like_expression($expression)

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

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

Build a case expression

from driver
sql_concatenate($expr1, $expr2)

Build a concatenated expression

from mssql_base
bool sql_buffer_nested_transactions()

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

from driver
sql_transaction($status = 'begin')

SQL Transaction

from driver
sql_build_array($query, $assoc_ary = false)

Build sql statement from an array

from driver
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

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

Run binary AND operator on DB column.

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

Run binary OR operator on DB column.

from driver
string cast_expr_to_bigint(string $expression)

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

from driver
string cast_expr_to_string($expression)

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

from driver
string sql_lower_text(string $column_name)

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

from mssql_base
bool sql_multi_insert(string $table, array $sql_ary)

Run more than one insert statement.

from driver
_sql_validate_value($var)

Function for validating values

from driver
sql_build_query($query, $array)

Build sql statement from array for select and select distinct statements

from driver
mixed sql_error(string $sql = '')

Display sql error page

from driver
sql_report($mode, $query = '')

Explain queries

from driver
string get_estimated_row_count(string $table_name)

Gets the estimated number of rows in a specified table.

from driver
string get_row_count(string $table_name)

Gets the exact number of rows in a specified table.

from driver
sql_escape($msg)

Escape string used in sql query

from mssql_base
_sql_like_expression($expression)

Build LIKE expression

from mssql_base
_sql_not_like_expression($expression)

Build NOT LIKE expression

from mssql_base
_sql_custom_build($stage, $data)

Build db-specific query data

from mssql_base
sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false)

Connect to server

string sql_server_info(bool $raw = false, bool $use_cache = true)

Version information about used database

_sql_transaction($status = 'begin')

SQL Transaction

sql_query($query = '', $cache_ttl)

Base query method

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

Build LIMIT query

sql_affectedrows()

Return number of affected rows

sql_fetchrow($query_id = false)

Fetch current row

sql_nextid()

Get last inserted id after insert statement

sql_freeresult($query_id = false)

Free sql result

_sql_error()

return sql error array

_sql_close()

Close sql connection

_sql_report($mode, $query = '')

Build db-specific report

Details

in driver at line 81
public __construct()

Constructor

in driver at line 101
public string get_sql_layer()

Gets the name of the sql layer.

Return Value

string

in driver at line 109
public string get_db_name()

Gets the name of the database.

Return Value

string

in driver at line 117
public string get_any_char()

Wildcards for matching any (%) character within LIKE expressions

Return Value

string

in driver at line 125
public string get_one_char()

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

Return Value

string

in driver at line 133
public mixed get_db_connect_id()

Gets the connect ID.

Return Value

mixed

in driver at line 141
public bool get_sql_error_triggered()

Indicates if an error was triggered.

Return Value

bool

in driver at line 149
public string get_sql_error_sql()

Gets the last faulty query

Return Value

string

in driver at line 157
public bool get_transaction()

Indicates if we are in a transaction.

Return Value

bool

in driver at line 165
public int get_sql_time()

Gets the time spent into the queries

Return Value

int

in driver at line 173
public array get_sql_error_returned()

Gets the returned error.

Return Value

array

in driver at line 181
public bool get_multi_insert()

Indicates if multiple insertion can be used

Return Value

bool

in driver at line 189
public set_multi_insert(bool $multi_insert)

Set if multiple insertion can be used

Parameters

bool $multi_insert

in driver 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

in driver at line 208
public sql_num_queries($cached = false)

Return number of sql queries and cached sql queries used

Parameters

$cached

in driver 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

in driver at line 226
public sql_close()

DBAL garbage collection, close SQL connection

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

Build LIMIT query

Parameters

$query
$total
$offset
$cache_ttl

in driver at line 276
public sql_fetchrowset($query_id = false)

Fetch all rows

Parameters

$query_id

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

Seek to given row number

Parameters

$rownum
$query_id

in driver 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

in driver 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_%'"

in driver 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_%'"

in driver 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

in mssql_base at line 24
public sql_concatenate($expr1, $expr2)

Build a concatenated expression

Parameters

$expr1
$expr2

in driver 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.

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

SQL Transaction

Parameters

$status

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

Build sql statement from an array

Parameters

$query
$assoc_ary

in driver 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"

in driver 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}"

in driver 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}"

in driver 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

in driver 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

in mssql_base at line 40
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)"

in driver 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.

in driver at line 686
public _sql_validate_value($var)

Function for validating values

Parameters

$var

in driver 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

in driver 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

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

Explain queries

Parameters

$mode
$query

in driver 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).

in driver 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.

in mssql_base at line 32
public sql_escape($msg)

Escape string used in sql query

Parameters

$msg

in mssql_base at line 49
public _sql_like_expression($expression)

Build LIKE expression

Parameters

$expression

in mssql_base at line 58
public _sql_not_like_expression($expression)

Build NOT LIKE expression

Parameters

$expression

in mssql_base at line 67
public _sql_custom_build($stage, $data)

Build db-specific query data

Parameters

$stage
$data

at line 33
public sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false)

Connect to server

Parameters

$sqlserver
$sqluser
$sqlpassword
$database
$port
$persistency
$new_link

at line 90
public string sql_server_info(bool $raw = false, bool $use_cache = true)

Version information about used database

Parameters

bool $raw Only return the fetched sqlserverversion
bool $use_cache Is it safe to retrieve the value from the cache

Return Value

string sql server version

at line 125
public _sql_transaction($status = 'begin')

SQL Transaction

Parameters

$status

at line 148
public sql_query($query = '', $cache_ttl)

Base query method

Parameters

$query
$cache_ttl

at line 215
public _sql_query_limit($query, $total, $offset, $cache_ttl)

Build LIMIT query

Parameters

$query
$total
$offset
$cache_ttl

at line 247
public sql_affectedrows()

Return number of affected rows

at line 255
public sql_fetchrow($query_id = false)

Fetch current row

Parameters

$query_id

at line 275
public sql_nextid()

Get last inserted id after insert statement

at line 296
public sql_freeresult($query_id = false)

Free sql result

Parameters

$query_id

at line 323
public _sql_error()

return sql error array

at line 347
public _sql_close()

Close sql connection

at line 356
public _sql_report($mode, $query = '')

Build db-specific report

Parameters

$mode
$query