Elgg  Version master
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Elgg\Database Class Reference

The Elgg database. More...

Public Member Functions

 __construct (DbConfig $db_config, protected QueryCache $query_cache, protected Config $config)
 Constructor. More...
 
 resetConnections (DbConfig $config)
 Reset the connections with new credentials. More...
 
 closeConnections ()
 Close all database connections. More...
 
 getConnection (string $type)
 Gets (if required, also creates) a DB connection. More...
 
 setupConnections ()
 Establish database connections. More...
 
 connect (string $type= 'readwrite')
 Establish a connection to the database server. More...
 
 getData (QueryBuilder $query, $callback=null)
 Retrieve rows from the database. More...
 
 getDataRow (QueryBuilder $query, $callback=null)
 Retrieve a single row from the database. More...
 
 insertData (QueryBuilder $query)
 Insert a row into the database. More...
 
 updateData (QueryBuilder $query, bool $get_num_rows=false)
 Update the database. More...
 
 deleteData (QueryBuilder $query)
 Delete data from the database. More...
 
 trackQuery (QueryBuilder $query, callable $callback)
 Tracks the query count and timers for a given query. More...
 
 registerDelayedQuery (QueryBuilder $query, $callback=null)
 Queue a query for execution upon shutdown. More...
 
 executeDelayedQueries ()
 Trigger all queries that were registered as "delayed" queries. More...
 
 getQueryCount ()
 Get the number of queries made to the database. More...
 
 getServerVersion (string $type=DbConfig::READ_WRITE)
 Get the server version number. More...
 
 isMariaDB (string $type=DbConfig::READ_WRITE)
 Is the database MariaDB. More...
 
 isMySQL (string $type=DbConfig::READ_WRITE)
 Is the database MySQL. More...
 
 __get ($name)
 Handle magic property reads. More...
 
 __set ($name, $value)
 Handle magic property writes. More...
 

Public Attributes

const DELAYED_QUERY = 'q'
 
const DELAYED_HANDLER = 'h'
 

Protected Member Functions

 fingerprintCallback ($callback)
 Get a string that uniquely identifies a callback during the current request. More...
 
 getResults (QueryBuilder $query, $callback=null, bool $single=false)
 Handles queries that return results, running the results through a an optional callback function. More...
 
 executeQuery (QueryBuilder $query)
 Execute a query. More...
 
 getCacheHash (string $sql, array $params=[], string $extras= '')
 Returns a hashed key for storage in the cache. More...
 

Protected Attributes

 $table_prefix
 
array $connections = []
 
int $query_count = 0
 
array $delayed_queries = []
 
 $db_config
 

Detailed Description

The Elgg database.

Definition at line 26 of file Database.php.

Constructor & Destructor Documentation

Elgg\Database::__construct ( DbConfig  $db_config,
protected QueryCache  $query_cache,
protected Config  $config 
)

Constructor.

Parameters
DbConfig$db_configDB configuration
QueryCache$query_cacheQuery Cache
Config$configElgg config

Definition at line 70 of file Database.php.

Member Function Documentation

Elgg\Database::__get (   $name)

Handle magic property reads.

Parameters
string$nameProperty name
Returns
mixed
Exceptions
RuntimeException

Definition at line 594 of file Database.php.

Elgg\Database::__set (   $name,
  $value 
)

Handle magic property writes.

Parameters
string$nameProperty name
mixed$valueValue
Returns
void
Exceptions
RuntimeException

Definition at line 611 of file Database.php.

Elgg\Database::closeConnections ( )

Close all database connections.

Note: this is only meant to be used in the PHPUnit test suites

Returns
void
Since
4.1

Definition at line 98 of file Database.php.

Elgg\Database::connect ( string  $type = 'readwrite')

Establish a connection to the database server.

Connect to the database server and use the Elgg database for a particular database link

Parameters
string$typeThe type of database connection. "read", "write", or "readwrite".
Returns
void
Exceptions
DatabaseException

Definition at line 152 of file Database.php.

Elgg\Database::deleteData ( QueryBuilder  $query)

Delete data from the database.

Note
Altering the DB invalidates all queries in query cache.
Parameters
QueryBuilder$queryThe SQL query to run
Returns
int The number of affected rows

Definition at line 286 of file Database.php.

Elgg\Database::executeDelayedQueries ( )

Trigger all queries that were registered as "delayed" queries.

This is called by the system automatically on shutdown.

Returns
void

Definition at line 521 of file Database.php.

Elgg\Database::executeQuery ( QueryBuilder  $query)
protected

Execute a query.

$query is executed via Connection::query. If there is an SQL error, a DatabaseException is thrown.

Parameters
QueryBuilder$queryThe query
Returns
Result|int The result of the query
Exceptions
DatabaseException

Definition at line 401 of file Database.php.

Elgg\Database::fingerprintCallback (   $callback)
protected

Get a string that uniquely identifies a callback during the current request.

This is used to cache queries whose results were transformed by the callback. If the callback involves object method calls of the same class, different instances will return different values.

Parameters
callable$callbackThe callable value to fingerprint
Returns
string A string that is unique for each callable passed in
Since
1.9.4

Definition at line 309 of file Database.php.

Elgg\Database::getCacheHash ( string  $sql,
array  $params = [],
string  $extras = '' 
)
protected

Returns a hashed key for storage in the cache.

Parameters
string$sqlquery
array$paramsoptional params
string$extrasoptional extras
Returns
string
Since
6.1

Definition at line 432 of file Database.php.

Elgg\Database::getConnection ( string  $type)

Gets (if required, also creates) a DB connection.

Parameters
string$typeThe type of link we want: "read", "write" or "readwrite".
Returns
Connection

Definition at line 113 of file Database.php.

Elgg\Database::getData ( QueryBuilder  $query,
  $callback = null 
)

Retrieve rows from the database.

Queries are executed with Elgg\Database::executeQuery()andresultsareretrievedwith@link\PDO::fetchObject().Ifacallbackfunction$callbackisdefined,eachrowwillbepassedasasingleargumentto$callback.Ifnocallbackfunctionisdefined,theentireresultsetisreturnedasanarray.@paramQueryBuilder$queryThequerybeingpassed.@paramcallable$callbackOptionally,thenameofafunctiontocallbacktooneachrow@returnarrayAnarrayofdatabaseresultobjectsorcallbackfunctionresults.Ifthequeryreturnednothing,anemptyarray.

Definition at line 200 of file Database.php.

Elgg\Database::getDataRow ( QueryBuilder  $query,
  $callback = null 
)

Retrieve a single row from the database.

Similar to Elgg\Database::getData()butreturnsonlythefirstrowmatched.Ifacallbackfunction$callbackisspecified,therowwillbepassedastheonlyargumentto$callback.@paramQueryBuilder$queryThequerytoexecute.@paramcallable$callbackAcallbackfunctiontoapplytotherow@returnmixedAsingledatabaseresultobjectortheresultofthecallbackfunction.

Definition at line 216 of file Database.php.

Elgg\Database::getQueryCount ( )

Get the number of queries made to the database.

Returns
int

Definition at line 547 of file Database.php.

Elgg\Database::getResults ( QueryBuilder  $query,
  $callback = null,
bool  $single = false 
)
protected

Handles queries that return results, running the results through a an optional callback function.

This is for R queries (from CRUD).

Parameters
QueryBuilder$queryThe select query to execute
callable$callbackAn optional callback function to run on each row
bool$singleReturn only a single result?
Returns
array| An array of database result objects or callback function results. If the query returned nothing, an empty array.
Exceptions
RuntimeException

Definition at line 342 of file Database.php.

Elgg\Database::getServerVersion ( string  $type = DbConfig::READ_WRITE)

Get the server version number.

Parameters
string$typeConnection type (Config constants, e.g. Config::READ_WRITE)
Returns
string Empty if version cannot be determined

Definition at line 558 of file Database.php.

Elgg\Database::insertData ( QueryBuilder  $query)

Insert a row into the database.

Note
Altering the DB invalidates all queries in the query cache.
Parameters
QueryBuilder$queryThe query to execute.
Returns
int The database id of the inserted row if a AUTO_INCREMENT field is defined, 0 if not

Definition at line 229 of file Database.php.

Elgg\Database::isMariaDB ( string  $type = DbConfig::READ_WRITE)

Is the database MariaDB.

Parameters
string$typeConnection type (Config constants, e.g. Config::READ_WRITE)
Returns
bool if MariaDB is detected

Definition at line 569 of file Database.php.

Elgg\Database::isMySQL ( string  $type = DbConfig::READ_WRITE)

Is the database MySQL.

Parameters
string$typeConnection type (Config constants, e.g. Config::READ_WRITE)
Returns
bool if MySQL is detected
Since
6.0

Definition at line 582 of file Database.php.

Elgg\Database::registerDelayedQuery ( QueryBuilder  $query,
  $callback = null 
)

Queue a query for execution upon shutdown.

You can specify a callback if you care about the result. This function will always be passed a .

Parameters
QueryBuilder$queryThe query to execute
callable$callbackA callback function to pass the results array to
Returns
void

Definition at line 490 of file Database.php.

Elgg\Database::resetConnections ( DbConfig  $config)

Reset the connections with new credentials.

Parameters
DbConfig$configDB config
Returns
void

Definition at line 81 of file Database.php.

Elgg\Database::setupConnections ( )

Establish database connections.

If the configuration has been set up for multiple read/write databases, set those links up separately; otherwise just create the one database link.

Returns
void

Definition at line 133 of file Database.php.

Elgg\Database::trackQuery ( QueryBuilder  $query,
callable  $callback 
)

Tracks the query count and timers for a given query.

Parameters
QueryBuilder$queryThe query
callable$callbackCallback to execyte during query execution
Returns
mixed

Definition at line 452 of file Database.php.

Elgg\Database::updateData ( QueryBuilder  $query,
bool  $get_num_rows = false 
)

Update the database.

Note
Altering the DB invalidates all queries in the query cache.
Parameters
QueryBuilder$queryThe query to run.
bool$get_num_rowsReturn the number of rows affected (default: false).
Returns
bool|int

Definition at line 261 of file Database.php.

Member Data Documentation

array Elgg\Database::$connections = []
protected

Definition at line 42 of file Database.php.

Elgg\Database::$db_config
protected

Definition at line 61 of file Database.php.

array Elgg\Database::$delayed_queries = []
protected

Definition at line 56 of file Database.php.

int Elgg\Database::$query_count = 0
protected

Definition at line 47 of file Database.php.

Elgg\Database::$table_prefix
protected

Definition at line 37 of file Database.php.

const Elgg\Database::DELAYED_HANDLER = 'h'

Definition at line 32 of file Database.php.

const Elgg\Database::DELAYED_QUERY = 'q'

Definition at line 31 of file Database.php.


The documentation for this class was generated from the following file: