class PDOConnector extends DBConnector implements TransactionManager

PDO driver database connector

Traits

Provides extensions to this object to integrate it with standard config API methods.

Config options

emulate_prepare boolean Should ATTR_EMULATE_PREPARES flag be used to emulate prepared statements?
legacy_types boolean Should we return everything as a string in order to allow transaction savepoints? This preserves the behaviour of <= 4.3, including some bugs.
ssl_cipher_default string Default strong SSL cipher to be used

Methods

static Config_ForClass
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .

mixed
stat(string $name) deprecated

Get inherited config value

mixed
uninherited(string $name)

Gets the uninherited value for the given config option

$this
set_stat(string $name, mixed $value) deprecated

Update the config value for a given property

bool
isQueryMutable(string $sql)

Determine if this SQL statement is a destructive operation (write or ddl)

bool
isQueryDDL(string $sql)

Determine if this SQL statement is a DDL operation

bool
isQueryWrite(string $sql)

Determine if this SQL statement is a write operation (alters content but not structure)

connect(array $parameters, boolean $selectDB = false)

Link this connector to the database given the specified parameters Will throw an exception rather than return a success state.

string
getVersion()

Query for the version of the currently connected database

string
escapeString(string $value)

Given a value escape this for use in a query for the current database connector. Note that this does not quote the value.

string
quoteString(string $value)

Given a value escape and quote this appropriately for the current database connector.

query(string $sql, integer $errorLevel = E_USER_ERROR)

Executes the following query with the specified error level.

preparedQuery(string $sql, array $parameters, int $errorLevel = E_USER_ERROR)

Execute the given SQL parameterised query with the specified arguments

boolean
selectDatabase(string $name)

Select a database by name

string
getSelectedDatabase()

Retrieves the name of the currently selected database

unloadDatabase()

De-selects the currently selected database

string
getLastError()

Retrieves the last error generated from the database connection

integer
getGeneratedID(string $table)

Determines the last ID generated from the specified table.

integer
affectedRows()

Determines the number of affected rows from the last SQL query

boolean
isActive()

Determines if we are connected to a server AND have a valid database selected.

flushStatements()

Flush all prepared statements

getOrPrepareStatement(string $sql)

Retrieve a prepared statement for a given SQL string, or return an already prepared version if one exists for the given query

static boolean
is_emulate_prepare()

Is PDO running in emulated mode

string
getDriver()

Return the driver for this connector E.g. 'mysql', 'sqlsrv', 'pgsql'

int
exec(string $sql, integer $errorLevel = E_USER_ERROR)

Executes a query that doesn't return a resultset

integer
getPDOParamType(string $phpType)

Determines the PDO::PARAM_* type for a given PHP type string

bindParameters(PDOStatement $statement, array $parameters)

Bind all parameters to a PDOStatement

bool
transactionStart(string|boolean $transactionMode = false, string|boolean $sessionCharacteristics = false)

Start a prepared transaction

bool
transactionEnd()

Complete a transaction

bool
transactionRollback(string $savepoint = null)

Roll-back a transaction

int
transactionDepth()

Return the depth of the transaction For unnested transactions returns 1 while in a transaction, 0 otherwise

transactionSavepoint(string $savepoint = null)

Create a new savepoint

boolean
supportsSavepoints()

Return true if savepoints are supported by this transaction manager.

Details

in Configurable at line 20
static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .

....).

Return Value

Config_ForClass

in Configurable at line 32
mixed stat(string $name) deprecated

deprecated 5.0 Use ->config()->get() instead

Get inherited config value

Parameters

string $name

Return Value

mixed

in Configurable at line 44
mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

in Configurable at line 57
$this set_stat(string $name, mixed $value) deprecated

deprecated 5.0 Use ->config()->set() instead

Update the config value for a given property

Parameters

string $name
mixed $value

Return Value

$this

in DBConnector at line 76
bool isQueryMutable(string $sql)

Determine if this SQL statement is a destructive operation (write or ddl)

Parameters

string $sql

Return Value

bool

in DBConnector at line 91
bool isQueryDDL(string $sql)

Determine if this SQL statement is a DDL operation

Parameters

string $sql

Return Value

bool

in DBConnector at line 104
bool isQueryWrite(string $sql)

Determine if this SQL statement is a write operation (alters content but not structure)

Parameters

string $sql

Return Value

bool

at line 137
connect(array $parameters, boolean $selectDB = false)

Link this connector to the database given the specified parameters Will throw an exception rather than return a success state.

The connector should not select the database once connected until explicitly called by selectDatabase()

Parameters

array $parameters List of parameters such as

  • type
  • server
  • username
  • password
  • database
  • path
boolean $selectDB By default database selection should be handled by the database controller (to enable database creation on the fly if necessary), but some interfaces require that the database is specified during connection (SQLite, Azure, etc).

at line 270
string getVersion()

Query for the version of the currently connected database

Return Value

string Version of this database

at line 275
string escapeString(string $value)

Given a value escape this for use in a query for the current database connector. Note that this does not quote the value.

Parameters

string $value The value to be escaped

Return Value

string The appropritaely escaped string for value

at line 287
string quoteString(string $value)

Given a value escape and quote this appropriately for the current database connector.

Parameters

string $value The value to be injected into a query

Return Value

string The appropriately escaped and quoted string for $value

at line 333
query(string $sql, integer $errorLevel = E_USER_ERROR)

Executes the following query with the specified error level.

Implementations of this function should respect previewWrite and benchmarkQuery

Parameters

string $sql The SQL query to execute
integer $errorLevel For errors to this query, raise PHP errors using this error level.

at line 408
Query preparedQuery(string $sql, array $parameters, int $errorLevel = E_USER_ERROR)

Execute the given SQL parameterised query with the specified arguments

Parameters

string $sql The SQL query to execute. The ? character will denote parameters.
array $parameters An ordered list of arguments.
int $errorLevel The level of error reporting to enable for the query

Return Value

Query

at line 505
boolean selectDatabase(string $name)

Select a database by name

Parameters

string $name Name of database

Return Value

boolean Flag indicating success

at line 512
string getSelectedDatabase()

Retrieves the name of the currently selected database

Return Value

string Name of the database, or null if none selected

at line 517
unloadDatabase()

De-selects the currently selected database

at line 481
string getLastError()

Retrieves the last error generated from the database connection

Return Value

string The error message

at line 495
integer getGeneratedID(string $table)

Determines the last ID generated from the specified table.

Note that some connectors may not be able to return $table specific responses, and this parameter may be ignored.

Parameters

string $table The target table to return the last generated ID for

Return Value

integer ID value

at line 500
integer affectedRows()

Determines the number of affected rows from the last SQL query

Return Value

integer Number of affected rows

at line 522
boolean isActive()

Determines if we are connected to a server AND have a valid database selected.

Return Value

boolean Flag indicating that a valid database is connected

at line 92
flushStatements()

Flush all prepared statements

at line 104
PDOStatementHandle|false getOrPrepareStatement(string $sql)

Retrieve a prepared statement for a given SQL string, or return an already prepared version if one exists for the given query

Parameters

string $sql

Return Value

PDOStatementHandle|false

at line 132
static boolean is_emulate_prepare()

Is PDO running in emulated mode

Return Value

boolean

at line 265
string getDriver()

Return the driver for this connector E.g. 'mysql', 'sqlsrv', 'pgsql'

Return Value

string

at line 317
int exec(string $sql, integer $errorLevel = E_USER_ERROR)

Executes a query that doesn't return a resultset

Parameters

string $sql The SQL query to execute
integer $errorLevel For errors to this query, raise PHP errors using this error level.

Return Value

int

at line 353
integer getPDOParamType(string $phpType)

Determines the PDO::PARAM_* type for a given PHP type string

Parameters

string $phpType Type of object in PHP

Return Value

integer PDO Parameter constant value

at line 383
bindParameters(PDOStatement $statement, array $parameters)

Bind all parameters to a PDOStatement

Parameters

PDOStatement $statement
array $parameters

at line 527
bool transactionStart(string|boolean $transactionMode = false, string|boolean $sessionCharacteristics = false)

Start a prepared transaction

Parameters

string|boolean $transactionMode Transaction mode, or false to ignore. Deprecated and will be removed in SS5.
string|boolean $sessionCharacteristics Session characteristics, or false to ignore. Deprecated and will be removed in SS5.

Return Value

bool True on success

Exceptions

DatabaseException on failure

at line 544
bool transactionEnd()

Complete a transaction

Return Value

bool True on success

Exceptions

DatabaseException on failure

at line 550
bool transactionRollback(string $savepoint = null)

Roll-back a transaction

Parameters

string $savepoint If set, roll-back to the named savepoint

Return Value

bool True on success

Exceptions

DatabaseException on failure

at line 564
int transactionDepth()

Return the depth of the transaction For unnested transactions returns 1 while in a transaction, 0 otherwise

Return Value

int

at line 569
transactionSavepoint(string $savepoint = null)

Create a new savepoint

Parameters

string $savepoint The savepoint name

Exceptions

DatabaseException on failure

at line 578
boolean supportsSavepoints()

Return true if savepoints are supported by this transaction manager.

Savepoints aren't supported by all database connectors (notably PDO doesn't support them) and should be used with caution.

Return Value

boolean