DatabaseDriver

Implements DatabaseInterface, LoggerAwareInterface

Joomla Framework Database Driver Class

abstract
since

1.0

package

Joomla Framework

Methods

__call

Magic method to provide method alias support for quote() and quoteName().

__call(string method, array args) : mixed
since

1.0

Arguments

method

stringThe called method.

args

arrayThe array of arguments passed to the method.

Response

mixedThe aliased method's return value or null.

__construct

Constructor.

__construct(array options) : mixed
since

1.0

Arguments

options

arrayList of options used to configure the connection

Response

mixed

__get

Magic method to access properties of the database driver.

__get(string name) : mixed
deprecated
since

1.4.0

deprecated

1.4.0 This is a B/C proxy since $this->name was previously public

Arguments

name

stringThe name of the property.

Response

mixedA value if the property name is valid, null otherwise.

connect

Connects to the database if needed.

connect() : void
abstract
since

1.0

throws

\RuntimeException

connected

Determines if the connection to the server is active.

connected() : bool
abstract
since

1.0

Response

boolTrue if connected to the database engine.

decodeBinary

Replace special placeholder representing binary field with the original string.

decodeBinary(string|resource data) : string
since

1.7.0

Arguments

data

string|resourceEncoded string or resource.

Response

stringThe original string.

disconnect

Disconnects the database.

disconnect() : void
abstract
since

1.0

dropTable

Drops a table from the database.

dropTable(string table, bool ifExists = true) : \Joomla\Database\DatabaseDriver
abstract
since

1.0

throws

\RuntimeException

Arguments

table

stringThe name of the database table to drop.

ifExists

boolOptionally specify that the table must exist before it is dropped.

Response

\Joomla\Database\DatabaseDriverReturns this object to support chaining.

escape

Escapes a string for usage in an SQL statement.

escape(string text, bool extra = false) : string
abstract
since

1.0

Arguments

text

stringThe string to be escaped.

extra

boolOptional parameter to provide extra escaping.

Response

stringThe escaped string.

execute

Execute the SQL statement.

execute() : resource|bool
abstract
since

1.0

throws

\RuntimeException

Response

resource|boolA database cursor resource on success, boolean false on failure.

fetchArray

Method to fetch a row from the result set cursor as an array.

fetchArray(mixed cursor = null) : mixed
abstract
since

1.0

Arguments

cursor

mixedThe optional result set cursor from which to fetch the row.

Response

mixedEither the next row from the result set or false if there are no more rows.

fetchAssoc

Method to fetch a row from the result set cursor as an associative array.

fetchAssoc(mixed cursor = null) : mixed
abstract
since

1.0

Arguments

cursor

mixedThe optional result set cursor from which to fetch the row.

Response

mixedEither the next row from the result set or false if there are no more rows.

fetchObject

Method to fetch a row from the result set cursor as an object.

fetchObject(mixed cursor = null, string class = 'stdClass') : mixed
abstract
since

1.0

Arguments

cursor

mixedThe optional result set cursor from which to fetch the row.

class

stringThe class name to use for the returned row object.

Response

mixedEither the next row from the result set or false if there are no more rows.

freeResult

Method to free up the memory used for the result set.

freeResult(mixed cursor = null) : void
abstract
since

1.0

Arguments

cursor

mixedThe optional result set cursor from which to fetch the row.

getAffectedRows

Get the number of affected rows for the previous executed SQL statement.

getAffectedRows() : int
abstract
since

1.0

Response

intThe number of affected rows.

getCollation

Method to get the database collation in use by sampling a text field of a table in the database.

getCollation() : string|bool
abstract
since

1.0

Response

string|boolThe collation in use by the database or boolean false if not supported.

getConnection

Method that provides access to the underlying database connection. Useful for when you need to call a proprietary method such as PostgreSQL's lo_* methods.

getConnection() : resource
since

1.0

Response

resourceThe underlying database connection resource.

getConnectionCollation

Method to get the database connection collation, as reported by the driver.

getConnectionCollation() : string|bool

If the connector doesn't support reporting this value please return an empty string.

since

1.6.0

Response

string|bool

getConnectors

Get a list of available database connectors. The list will only be populated with connectors that both the class exists and the static test method returns true. This gives us the ability to have a multitude of connector classes that are self-aware as to whether or not they are able to be used on a given system.

getConnectors() : array
static
since

1.0

Response

arrayAn array of available database connectors.

getCount

Get the total number of SQL statements executed by the database driver.

getCount() : int
since

1.0

Response

int

getDatabase

Gets the name of the database used by this conneciton.

getDatabase() : string
since

1.0

Response

string

getDateFormat

Returns a PHP date() function compliant date format for the database driver.

getDateFormat() : string
since

1.0

Response

stringThe format string.

getExporter

Gets an exporter class object.

getExporter() : \Joomla\Database\DatabaseExporter
since

1.0

throws

\RuntimeException

Response

\Joomla\Database\DatabaseExporterAn exporter object.

getImporter

Gets an importer class object.

getImporter() : \Joomla\Database\DatabaseImporter
since

1.0

throws

\RuntimeException

Response

\Joomla\Database\DatabaseImporterAn importer object.

getInstance

Method to return a DatabaseDriver instance based on the given options.

getInstance(array options = array()) : \Joomla\Database\DatabaseDriver
static

There are three global options and then the rest are specific to the database driver. The 'driver' option defines which DatabaseDriver class is used for the connection -- the default is 'mysqli'. The 'database' option determines which database is to be used for the connection. The 'select' option determines whether the connector should automatically select the chosen database.

Instances are unique to the given options and new objects are only created when a unique options array is passed into the method. This ensures that we don't end up with unnecessary database connection resources.

since

1.0

throws

\RuntimeException

Arguments

options

arrayParameters to be passed to the database driver.

Response

\Joomla\Database\DatabaseDriverA database object.

getIterator

Get a new iterator on the current query.

getIterator(string column = null, string class = '\stdClass') : \Joomla\Database\DatabaseIterator
since

1.0

throws

\RuntimeException

Arguments

column

stringAn option column to use as the iterator key.

class

stringThe class of object that is returned.

Response

\Joomla\Database\DatabaseIteratorA new database iterator.

getMinimum

Get the minimum supported database version.

getMinimum() : string
since

1.0

Response

stringThe minimum version number for the database driver.

getName

Get the name of the database driver.

getName() : string

If $this->name is not set it will try guessing the driver name from the class name.

since

1.4.0

Response

string

getNullDate

Get the null or zero representation of a timestamp for the database driver.

getNullDate() : string
since

1.0

Response

stringNull or zero representation of a timestamp.

getNumRows

Get the number of returned rows for the previous executed SQL statement.

getNumRows(resource cursor = null) : int
abstract
since

1.0

Arguments

cursor

resourceAn optional database cursor resource to extract the row count from.

Response

intThe number of returned rows.

getPrefix

Get the common table prefix for the database driver.

getPrefix() : string
since

1.0

Response

stringThe common database table prefix.

getQuery

Get the current query object or a new DatabaseQuery object.

getQuery(bool new = false) : \Joomla\Database\DatabaseQuery
since

1.0

throws

\RuntimeException

Arguments

new

boolFalse to return the current query object, True to return a new DatabaseQuery object.

Response

\Joomla\Database\DatabaseQueryThe current query object or a new object extending the DatabaseQuery class.

getServerType

Get the server family type.

getServerType() : string

If $this->serverType is not set it will attempt guessing the server family type from the driver name. If this is not possible the driver name will be returned instead.

since

1.4.0

Response

string

getTableColumns

Retrieves field information about the given tables.

getTableColumns(string table, bool typeOnly = true) : array
abstract
since

1.0

throws

\RuntimeException

Arguments

table

stringThe name of the database table.

typeOnly

boolTrue (default) to only return field types.

Response

arrayAn array of fields by table.

getTableCreate

Shows the table CREATE statement that creates the given tables.

getTableCreate(mixed tables) : array
abstract
since

1.0

throws

\RuntimeException

Arguments

tables

mixedA table name or a list of table names.

Response

arrayA list of the create SQL for the tables.

getTableKeys

Retrieves field information about the given tables.

getTableKeys(mixed tables) : array
abstract
since

1.0

throws

\RuntimeException

Arguments

tables

mixedA table name or a list of table names.

Response

arrayAn array of keys for the table(s).

getTableList

Method to get an array of all tables in the database.

getTableList() : array
abstract
since

1.0

throws

\RuntimeException

Response

arrayAn array of all the tables in the database.

getVersion

Get the version of the database connector

getVersion() : string
abstract
since

1.0

Response

stringThe database connector version.

hasUtfSupport

Determine whether or not the database engine supports UTF-8 character encoding.

hasUtfSupport() : bool
since

1.0

Response

boolTrue if the database engine supports UTF-8 character encoding.

insertid

Method to get the auto-incremented value from the last INSERT statement.

insertid() : mixed
abstract
since

1.0

Response

mixedThe value of the auto-increment field from the last inserted row.

insertObject

Inserts a row into a table based on an object's properties.

insertObject(string table, object &object, string key = null) : bool
since

1.0

throws

\RuntimeException

Arguments

table

stringThe name of the database table to insert into.

object

objectA reference to an object whose public properties match the table fields.

key

stringThe name of the primary key. If provided the object property is updated.

Response

boolTrue on success.

isMinimumVersion

Method to check whether the installed database version is supported by the database driver

isMinimumVersion() : bool
since

1.0

Response

boolTrue if the database version is supported

loadAssoc

Method to get the first row of the result set from the database query as an associative array of ['field_name' => 'row_value'].

loadAssoc() : mixed
since

1.0

throws

\RuntimeException

Response

mixedThe return value or null if the query failed.

loadAssocList

Method to get an array of the result set rows from the database query where each row is an associative array of ['field_name' => 'row_value']. The array of rows can optionally be keyed by a field name, but defaults to a sequential numeric array.

loadAssocList(string key = null, string column = null) : mixed

NOTE: Chosing to key the result array by a non-unique field name can result in unwanted behavior and should be avoided.

since

1.0

throws

\RuntimeException

Arguments

key

stringThe name of a field on which to key the result array.

column

stringAn optional column name. Instead of the whole row, only this column value will be in the result array.

Response

mixedThe return value or null if the query failed.

loadColumn

Method to get an array of values from the $offset field in each row of the result set from the database query.

loadColumn(int offset) : mixed
since

1.0

throws

\RuntimeException

Arguments

offset

intThe row offset to use to build the result array.

Response

mixedThe return value or null if the query failed.

loadObject

Method to get the first row of the result set from the database query as an object.

loadObject(string class = 'stdClass') : mixed
since

1.0

throws

\RuntimeException

Arguments

class

stringThe class name to use for the returned row object.

Response

mixedThe return value or null if the query failed.

loadObjectList

Method to get an array of the result set rows from the database query where each row is an object. The array of objects can optionally be keyed by a field name, but defaults to a sequential numeric array.

loadObjectList(string key = '', string class = 'stdClass') : mixed

NOTE: Choosing to key the result array by a non-unique field name can result in unwanted behavior and should be avoided.

since

1.0

throws

\RuntimeException

Arguments

key

stringThe name of a field on which to key the result array.

class

stringThe class name to use for the returned row objects.

Response

mixedThe return value or null if the query failed.

loadResult

Method to get the first field of the first row of the result set from the database query.

loadResult() : mixed
since

1.0

throws

\RuntimeException

Response

mixedThe return value or null if the query failed.

loadRow

Method to get the first row of the result set from the database query as an array. Columns are indexed numerically so the first column in the result set would be accessible via $row[0], etc.

loadRow() : mixed
since

1.0

throws

\RuntimeException

Response

mixedThe return value or null if the query failed.

loadRowList

Method to get an array of the result set rows from the database query where each row is an array. The array of objects can optionally be keyed by a field offset, but defaults to a sequential numeric array.

loadRowList(string key = null) : mixed

NOTE: Choosing to key the result array by a non-unique field can result in unwanted behavior and should be avoided.

since

1.0

throws

\RuntimeException

Arguments

key

stringThe name of a field on which to key the result array.

Response

mixedThe return value or null if the query failed.

lockTable

Locks a table in the database.

lockTable(string tableName) : \Joomla\Database\DatabaseDriver
abstract
since

1.0

throws

\RuntimeException

Arguments

tableName

stringThe name of the table to unlock.

Response

\Joomla\Database\DatabaseDriverReturns this object to support chaining.

log

Logs a message.

log(string level, string message, array context = array()) : \Joomla\Database\DatabaseDriver
since

1.0

Arguments

level

stringThe level for the log. Use constants belonging to Psr\Log\LogLevel.

message

stringThe message.

context

arrayAdditional context.

Response

\Joomla\Database\DatabaseDriverReturns itself to allow chaining.

q

q(mixed text, mixed escape) : string

Alias for quote method

Arguments

text

mixed

escape

mixed

Response

string

qn

qn(mixed name, mixed as) : string

Alias for quoteName method

Arguments

name

mixed

as

mixed

Response

string

quote

Quotes and optionally escapes a string to database requirements for use in database queries.

quote(array|string text, bool escape = true) : string
note

Accepting an array of strings was added in Platform 12.3.

since

1.0

Arguments

text

array|stringA string or an array of strings to quote.

escape

boolTrue (default) to escape the string, false to leave it unchanged.

Response

stringThe quoted input string.

quoteBinary

Quotes a binary string to database requirements for use in database queries.

quoteBinary(string data) : string
since

1.7.0

Arguments

data

stringA binary string to quote.

Response

stringThe binary quoted input string.

quoteName

Wrap an SQL statement identifier name such as column, table or database names in quotes to prevent injection risks and reserved word conflicts.

quoteName(array|string name, array|string as = null) : array|string
since

1.0

Arguments

name

array|stringThe identifier name to wrap in quotes, or an array of identifier names to wrap in quotes. Each type supports dot-notation name.

as

array|stringThe AS query part associated to $name. It can be string or array, in latter case it has to be same length of $name; if is null there will not be any AS part for string or array element.

Response

array|stringThe quote wrapped name, same type of $name.

quoteNameStr

Quote strings coming from quoteName call.

quoteNameStr(array strArr) : string
deprecated
since

1.0

deprecated

2.0 Use quoteNameString instead

Arguments

strArr

arrayArray of strings coming from quoteName dot-explosion.

Response

stringDot-imploded string of quoted parts.

quoteNameString

Quote string coming from quoteName call.

quoteNameString(string name, bool asSinglePart = false) : string
since

1.7.0

Arguments

name

stringIdentifier name to be quoted.

asSinglePart

boolTreat the name as a single part of the identifier.

Response

stringQuoted identifier string.

renameTable

Renames a table in the database.

renameTable(string oldTable, string newTable, string backup = null, string prefix = null) : \Joomla\Database\DatabaseDriver
abstract
since

1.0

throws

\RuntimeException

Arguments

oldTable

stringThe name of the table to be renamed

newTable

stringThe new name for the table.

backup

stringTable prefix

prefix

stringFor the table - used to rename constraints in non-mysql databases

Response

\Joomla\Database\DatabaseDriverReturns this object to support chaining.

replacePrefix

This function replaces a string identifier $prefix with the string held is the tablePrefix class variable.

replacePrefix(string sql, string prefix = '#__') : string
since

1.0

Arguments

sql

stringThe SQL statement to prepare.

prefix

stringThe common table prefix.

Response

stringThe processed SQL statement.

select

Select a database for use.

select(string database) : bool
abstract
since

1.0

throws

\RuntimeException

Arguments

database

stringThe name of the database to select for use.

Response

boolTrue if the database was successfully selected.

setDebug

Sets the database debugging state for the driver.

setDebug(bool level) : bool
since

1.0

Arguments

level

boolTrue to enable debugging.

Response

boolThe old debugging level.

setLogger

Sets a logger instance on the object

setLogger(\Psr\Log\LoggerInterface logger) : void
since

1.0

Arguments

logger

\Psr\Log\LoggerInterfaceA PSR-3 compliant logger.

setQuery

Sets the SQL statement string for later execution.

setQuery(mixed query, int offset, int limit) : \Joomla\Database\DatabaseDriver
since

1.0

Arguments

query

mixedThe SQL statement to set either as a Query object or a string.

offset

intThe affected row offset to set.

limit

intThe maximum affected rows to set.

Response

\Joomla\Database\DatabaseDriverThis object to support method chaining.

setUtf

Set the connection to use UTF-8 character encoding.

setUtf() : bool
abstract
since

1.0

Response

boolTrue on success.

splitSql

Splits a string of multiple queries into an array of individual queries.

splitSql(string sql) : array
static
since

1.0

Arguments

sql

stringInput SQL string with which to split into individual queries.

Response

arrayThe queries from the input string separated into an array.

transactionCommit

Method to commit a transaction.

transactionCommit(bool toSavepoint = false) : void
abstract
since

1.0

throws

\RuntimeException

Arguments

toSavepoint

boolIf true, commit to the last savepoint.

transactionRollback

Method to roll back a transaction.

transactionRollback(bool toSavepoint = false) : void
abstract
since

1.0

throws

\RuntimeException

Arguments

toSavepoint

boolIf true, rollback to the last savepoint.

transactionStart

Method to initialize a transaction.

transactionStart(bool asSavepoint = false) : void
abstract
since

1.0

throws

\RuntimeException

Arguments

asSavepoint

boolIf true and a transaction is already active, a savepoint will be created.

truncateTable

Method to truncate a table.

truncateTable(string table) : void
since

1.0

throws

\RuntimeException

Arguments

table

stringThe table to truncate

unlockTables

Unlocks tables in the database.

unlockTables() : \Joomla\Database\DatabaseDriver
abstract
since

1.0

throws

\RuntimeException

Response

\Joomla\Database\DatabaseDriverReturns this object to support chaining.

updateObject

Updates a row in a table based on an object's properties.

updateObject(string table, object &object, array key, bool nulls = false) : bool
since

1.0

throws

\RuntimeException

Arguments

table

stringThe name of the database table to update.

object

objectA reference to an object whose public properties match the table fields.

key

arrayThe name of the primary key.

nulls

boolTrue to update null fields or false to ignore them.

Response

boolTrue on success.

Properties

database

The name of the database.

since

1.0

Type(s)

string

name

The name of the database driver.

since

1.0

Type(s)

string

serverType

The type of the database server family supported by this driver.

since

1.4.0

Type(s)

string

connection

The database connection resource.

since

1.0

Type(s)

resource

connectors

Holds the list of available db connectors.

static
since

1.0

Type(s)

array

count

The number of SQL statements executed by the database driver.

since

1.0

Type(s)

int

cursor

The database connection cursor from the last query.

since

1.0

Type(s)

resource

debug

The database driver debugging state.

since

1.0

Type(s)

bool

limit

The affected row limit for the current SQL statement.

since

1.0

Type(s)

int

nameQuote

The character(s) used to quote SQL statement names such as table names or field names, etc.

The child classes should define this as necessary. If a single character string the same character is used for both sides of the quoted name, else the first character will be used for the opening quote and the second for the closing quote.

since

1.0

Type(s)

string

nullDate

The null or zero representation of a timestamp for the database driver.

This should be defined in child classes to hold the appropriate value for the engine.

since

1.0

Type(s)

string

offset

The affected row offset to apply for the current SQL statement.

since

1.0

Type(s)

int

options

Passed in upon instantiation and saved.

since

1.0

Type(s)

array

sql

The current SQL statement to execute.

since

1.0

Type(s)

mixed

tablePrefix

The common database table prefix.

since

1.0

Type(s)

string

utf

True if the database engine supports UTF-8 character encoding.

since

1.0

Type(s)

bool

errorNum

The database error number.

since

1.0

Type(s)

int

errorMsg

The database error message.

since

1.0

Type(s)

string

instances

DatabaseDriver instances container.

static
since

1.0

Type(s)

array

dbMinimum

The minimum supported database version.

static
since

1.0

Type(s)

string

transactionDepth

The depth of the current transaction.

since

1.0

Type(s)

int

logger

A logger.

since

1.0

Type(s)

\Psr\Log\LoggerInterface