Overview

Packages

  • CONTENIDO
  • Core
    • Authentication
    • Backend
    • Cache
    • CEC
    • Chain
    • ContentType
    • Database
    • Debug
    • Exception
    • Frontend
      • Search
      • URI
      • Util
    • GenericDB
      • Model
    • GUI
      • HTML
    • I18N
    • LayoutHandler
    • Log
    • Security
    • Session
    • Util
    • Validation
    • Versioning
    • XML
  • Module
    • ContentRssCreator
    • ContentSitemapHtml
    • ContentSitemapXml
    • ContentUserForum
    • NavigationTop
    • ScriptCookieDirective
  • mpAutoloaderClassMap
  • None
  • Plugin
    • ContentAllocation
    • CronjobOverview
    • FormAssistant
    • FrontendLogic
    • FrontendUsers
    • Linkchecker
    • ModRewrite
    • Newsletter
    • Repository
      • FrontendNavigation
      • KeywordDensity
    • SearchSolr
    • SmartyWrapper
    • UrlShortener
    • UserForum
    • Workflow
  • PluginManager
  • Setup
    • Form
    • GUI
    • Helper
      • Environment
      • Filesystem
      • MySQL
      • PHP
    • UpgradeJob

Classes

  • cDb
  • cDbDriverAbstract
  • cDbDriverHandler
  • cDbDriverMysql
  • cDbDriverMysqli

Exceptions

  • cDbException
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo

Class cDbDriverHandler

This class contains functions for database driver handling in CONTENIDO.

Direct known subclasses

cDb
Abstract
Package: Core\Database
Copyright: four for business AG <www.4fb.de>
License: http://www.contenido.org/license/LIZENZ.txt
Author: Dominik Ziegler
Located at classes/db/class.db.driver.handler.php
Methods summary
public
# __construct( array $options = array() )

Constructor to create an instance of this class.

Constructor to create an instance of this class.

Sets passed options and connects to the DBMS, if not done before.

Uses default connection settings, passed $options['connection'] settings will overwrite connection settings for current instance.

Parameters

$options
array
$options [optional] Assoziative options as follows: - $options['haltBehavior'] (string) Optional, halt behavior on occured errors - $options['haltMsgPrefix'] (string) Optional, Text to prepend to the halt message - $options['enableProfiling'] (bool) Optional, flag to enable profiling - $options['connection'] (array) Optional, assoziative connection settings - $options['connection']['host'] (string) Hostname or ip - $options['connection']['database'] (string) Database name - $options['connection']['user'] (string) User name - $options['connection']['password'] (string) User password

Throws

cDbException
public boolean
# isProfilingEnabled( )

Checks if profiling was enabled via configuration.

Checks if profiling was enabled via configuration.

Returns

boolean
public string
# getHaltBehaviour( )

Returns the halt behaviour setting.

Returns the halt behaviour setting.

Returns

string
public
# loadDriver( )

Loads the database driver and checks its base functionality.

Loads the database driver and checks its base functionality.

Throws

cDbException
public cDbDriverAbstract
# getDriver( )

Returns the database driver instance.

Returns the database driver instance.

Returns

cDbDriverAbstract
public static
# setDefaultConfiguration( array $defaultDbCfg )

Setter for default database configuration, the connection values.

Setter for default database configuration, the connection values.

Parameters

$defaultDbCfg
array
$defaultDbCfg
protected mixed
# _getConnection( mixed $data )

Returns connection from connection cache

Returns connection from connection cache

Parameters

$data
mixed
$data Connection data array or variable

Returns

mixed
Either The connection (object, resource, integer) or NULL
protected
# _setConnection( mixed $data, mixed $connection )

Stores connection in connection cache

Stores connection in connection cache

Parameters

$data
mixed
$data Connection data array
$connection
mixed
$connection The connection to store in cache
protected
# _removeConnection( mixed $connection )

Removes connection from cache

Removes connection from cache

Parameters

$connection
mixed
$connection The connection to remove in cache
protected static
# _addProfileData( float $timeStart, float $timeEnd, string $statement )

Adds a entry to the profile data.

Adds a entry to the profile data.

Parameters

$timeStart
float
$timeStart
$timeEnd
float
$timeEnd
$statement
string
$statement
public static array
# getProfileData( )

Returns collected profile data.

Returns collected profile data.

Returns

array
Profile data array like: - $arr[$i]['time'] (float) Elapsed time to execute the query - $arr[$i]['query'] (string) The query itself
public string
# prepare( string $statement )

Prepares the statement for execution and returns it back. Accepts multiple parameter, where the first parameter should be the query and any additional parameter should be the values to replace in format definitions. As an alternative the second parameter cound be also a indexed array with values to replace in format definitions.

Prepares the statement for execution and returns it back. Accepts multiple parameter, where the first parameter should be the query and any additional parameter should be the values to replace in format definitions. As an alternative the second parameter cound be also a indexed array with values to replace in format definitions.

Other option is to call this function with the statement containing named parameter and the second parameter as a assoziative array with key/value pairs to set in statement.

Examples:

// multiple parameter
$sql = $obj->prepare('SELECT * FROM `%s` WHERE id = %d', 'tablename',
123);

// 2 parameter where the first is the statement with formatting signs and
the second the entries array
$sql = $obj->prepare('SELECT * FROM `%s` WHERE id = %d',
array('tablename', 123));

// 2 parameter where the first is the statement with named parameter and
the second the assoziative entries array
$sql = $obj->prepare('SELECT * FROM `:mytab` WHERE id = :myid',
array('mytab' => 'tablename', 'myid' => 123));

Accepts additional unlimited parameter, where the parameter will be replaced against formatting sign in query.

Parameters

$statement
string
$statement The sql statement to prepare.

Returns

string
The prepared sql statement

Throws

Exception
If statement is empty or function is called with less than 2 parameters
protected string
# _prepareStatement( string $statement, array $arguments )

Prepares the passed statement.

Prepares the passed statement.

Parameters

$statement
string
$statement
$arguments
array
$arguments

Returns

string
protected string
# _prepareStatementF( string $statement, array $arguments )

Prepares a statement with parameter for execution.

Prepares a statement with parameter for execution.

Examples:

$obj->_prepareStatementF('SELECT * FROM `%s` WHERE id = %d', 'tablename',
123);
$obj->_prepareStatementF('SELECT * FROM `%s` WHERE id = %d AND user =
%d', 'tablename', 123, 3);

Parameters

$statement
string
$statement
$arguments
array
$arguments Arguments array containing the query with formatting signs and the entries.

Returns

string
protected string
# _prepareStatementA( string $statement, array $arguments )

Prepares a statement with named parameter for execution.

Prepares a statement with named parameter for execution.

Examples:

// named parameter and assoziative entries array
$sql = $obj->_prepareStatementA('SELECT * FROM `:mytab` WHERE id =
:myid', array('mytab' => 'tablename', 'myid' => 123));
$sql = $obj->_prepareStatementA('SELECT * FROM `:mytab` WHERE id = :myid
AND user = :myuser', array('mytab' => 'tablename', 'myid' => 123,
'myuser' => 3));

Parameters

$statement
string
$statement
$arguments
array
$arguments Arguments array containing the query with named parameter and assoziative entries array

Returns

string
public object|resource|integer|null
# connect( )

Establishes a connection to the database server.

Establishes a connection to the database server.

Returns

object|resource|integer|null
value depends on used driver and is NULL in case of an error.
public boolean
# insert( string $tableName, array $fields )

Builds and executes a insert query. String values in passed aFields parameter will be escaped automatically.

Builds and executes a insert query. String values in passed aFields parameter will be escaped automatically.

Example:

$db = cRegistry::getDb();
$fields = array(
'idcatart' => $idcatart,
'idlang' => $lang,
'idclient' => $client,
'code' => "<html>... code n' fun ...</html>",
);
$result = $db->insert($cfg['tab']['code'], $fields);

Parameters

$tableName
string
$tableName The table name
$fields
array
$fields Assoziative array of fields to insert

Returns

boolean
public string
# buildInsert( string $tableName, array $fields )

Builds and returns a insert query. String values in passed fields parameter will be escaped automatically.

Builds and returns a insert query. String values in passed fields parameter will be escaped automatically.

Example:

$db = cRegistry::getDb();
$fields = array(
'idcode' => $idcode,
'idcatart' => $idcatart,
'idlang' => $lang,
'idclient' => $client,
'code' => "<html>... code n' fun ...</html>",
);
$statement = $db->buildInsert($cfg['tab']['code'], $fields);
$db->query($statement);

Parameters

$tableName
string
$tableName The table name
$fields
array
$fields Assoziative array of fields to insert

Returns

string
public boolean
# update( string $tableName, array $fields, array $whereClauses )

Builds and executes a update query. String values in passed fields and whereClauses parameter will be escaped automatically.

Builds and executes a update query. String values in passed fields and whereClauses parameter will be escaped automatically.

Example:

$db = cRegistry::getDb();
$fields = array('code' => "<html>... some new code n' fun ...</html>");
$whereClauses = array('idcode' => 123);
$result = $db->update($cfg['tab']['code'], $fields, $whereClauses);

Parameters

$tableName
string
$tableName The table name
$fields
array
$fields Assoziative array of fields to update
$whereClauses
array
$whereClauses Assoziative array of field in where clause. Multiple entries will be concatenated with AND

Returns

boolean
public string
# buildUpdate( string $tableName, array $fields, array $whereClauses )

Builds and returns a update query. String values in passed aFields and aWhere parameter will be escaped automatically.

Builds and returns a update query. String values in passed aFields and aWhere parameter will be escaped automatically.

Example:

$db = cRegistry::getDb();
$fields = array('code' => "<html>... some new code n' fun ...</html>");
$whereClauses = array('idcode' => 123);
$statement = $db->buildUpdate($cfg['tab']['code'], $fields,
$whereClauses);
$db->query($statement);

Parameters

$tableName
string
$tableName The table name
$fields
array
$fields Assoziative array of fields to update
$whereClauses
array
$whereClauses Assoziative array of field in where clause. Multiple entries will be concatenated with AND

Returns

string
public resource|integer|object|boolean
# query( string $statement )

Executes the statement. If called with one parameter, it executes the statement directly.

Executes the statement. If called with one parameter, it executes the statement directly.

Accepts multiple parameter, where the first parameter should be the query and any additional parameter should be the values to replace in format definitions. As an alternative the second parameter cound be also a indexed array with values to replace in format definitions.

Other option is to call this function with the statement containing named parameter and the second parameter as a assoziative array with key/value pairs to set in statement.

Examples:

// call with one parameter
$obj->query('SELECT * FROM `tablename` WHERE id = 123');

// call with multiple parameter
$obj->query('SELECT * FROM `%s` WHERE id = %d', 'tablename', 123);

// 2 parameter where the first is the statement with formatting signs and
the second the entries array
$obj->query('SELECT * FROM `%s` WHERE id = %d', array('tablename', 123));

// 2 parameter where the first is the statement with named parameter and
the second the assoziative entries array
$obj->query('SELECT * FROM `:mytab` WHERE id = :myid', array('mytab' =>
'tablename', 'myid' => 123));

Accepts additional unlimited parameter, where the parameter will be replaced against formatting sign in query.

Parameters

$statement
string
$statement The SQL statement to execute.

Returns

resource|integer|object|boolean
database driver, false on error
public boolean
# nextRecord( )

Fetches the next record set from result set

Fetches the next record set from result set

Returns

boolean
public object
# getResultObject( string $className = NULL )

This method returns the current result set as object or NULL if no result set is left. If optional param $className is set, the result object is an instance of class $className.

This method returns the current result set as object or NULL if no result set is left. If optional param $className is set, the result object is an instance of class $className.

Parameters

$className
string
$className [optional]

Returns

object
public integer
# affectedRows( )

Returns number of affected rows from last executed query (update, delete)

Returns number of affected rows from last executed query (update, delete)

Returns

integer
Number of affected rows
public integer
# numRows( )

Returns the number of rows from last executed select query.

Returns the number of rows from last executed select query.

Returns

integer
The number of rows from last select query result
public integer
# numFields( )

Returns the number of fields (columns) from current record set

Returns the number of fields (columns) from current record set

Returns

integer
Number of fields
public integer
# free( )

Discard the query result

Discard the query result

Returns

integer
public string
# escape( string $string )

Escape string for using in SQL-Statement.

Escape string for using in SQL-Statement.

Parameters

$string
string
$string The string to escape

Returns

string
Escaped string
public integer
# seek( integer $pos )

Moves the cursor (position inside current result sets).

Moves the cursor (position inside current result sets).

Parameters

$pos
integer
$iPos The positon to move to inside the current result set

Returns

integer
public integer
# getLastInsertedId( )

Get last inserted id of given table name

Get last inserted id of given table name

Returns

integer
NULL id of table
public array
# getMetaData( string $tableName = '', boolean $full = false )

Parses te table structure and generates a metadata from it.

Parses te table structure and generates a metadata from it.

Parameters

$tableName
string
$tableName [optional] The table to get metadata or empty string to retrieve metadata of all tables
$full
boolean
$full [optional] Flag to load full metadata

Returns

array
Depends on used database and on parameter $full
public array|null
# getTableNames( )

Returns names of existing tables.

Returns names of existing tables.

Returns

array|null
array containing assoziative table data as follows or NULL: - $info[$i]['table_name'] - $info[$i]['tablespace_name'] - $info[$i]['database']
public array|null
# getServerInfo( )

Returns information about DB server. The return value depends always on used DBMS.

Returns information about DB server. The return value depends always on used DBMS.

Returns

array|null
array as follows or NULL: - $arr['description'] (string) Optional, server description - $arr['version'] (string) Optional, server version
public
# disconnect( )

Closes the connection and frees the query id.

Closes the connection and frees the query id.

public mixed
# f( mixed $name, mixed $default = NULL )

Returns the desired field value from current record set.

Returns the desired field value from current record set.

Parameters

$name
mixed
$name The field name or index position
$default
mixed
$default [optional] The default value to return

Returns

mixed
The value of field
public array
# toArray( string $fetchMode = cDbDriverHandler::FETCH_ASSOC )

Returns current record set as a associative and/or indexed array.

Returns current record set as a associative and/or indexed array.

Parameters

$fetchMode
string
$fetchMode [optional] One of cDbDriverHandler::FETCH_* constants

Returns

array
public stdClass
# toObject( )

Returns current record set as a object

Returns current record set as a object

Returns

stdClass
public
# halt( string $message )

Error handling

Error handling

Error handler function, delegates passed message to the function reportHalt() if property $this->_haltBehaviour is not set to self::HALT_REPORT.

Terminates further script execution if $this->_haltBehaviour is set to self::HALT_YES

Parameters

$message
string
$message The message to use for error handling

Throws

cDbException
public
# reportHalt( string $message )

Logs passed message, basically the last db error to the error log. Concatenates a detailed error message and invoke PHP's error_log() method.

Logs passed message, basically the last db error to the error log. Concatenates a detailed error message and invoke PHP's error_log() method.

Parameters

$message
string
$message
public integer
# num_rows( )

Returns the number of rows from last executed select query.

Returns the number of rows from last executed select query.

Returns

integer
The number of rows from last select query result

See

cDbDriverHandler::numRows()
public integer
# affected_rows( )

Returns number of affected rows from last executed query (update, delete)

Returns number of affected rows from last executed query (update, delete)

Returns

integer
Number of affected rows

See

cDbDriverHandler::affectedRows()
public integer
# num_fields( )

Returns the number of fields (columns) from current record set

Returns the number of fields (columns) from current record set

Returns

integer
Number of fields

See

cDbDriverHandler::numFields()
public boolean
# next_record( )

Fetches the next record set from result set

Fetches the next record set from result set

Returns

boolean

See

cDbDriverHandler::nextRecord()
Constants summary
string HALT_YES 'yes'
#
string HALT_NO 'no'
#
string HALT_REPORT 'report'
#
string FETCH_NUMERIC 'numeric'
#
string FETCH_ASSOC 'assoc'
#
string FETCH_BOTH 'both'
#
Properties summary
protected cDbDriverAbstract $_driver NULL
#

Loader database driver.

Loader database driver.

protected string $_driverType ''
#

Driver type

Driver type

protected static array $_defaultDbCfg array()
#

Default database connection for all instances

Default database connection for all instances

protected static array $_connectionCache array()
#

Assoziative list of database connections

Assoziative list of database connections

protected static array $_metaCache array()
#

Assoziative list of database tables metadata

Assoziative list of database tables metadata

protected array $_dbCfg array()
#

Database connection configuration for current instance

Database connection configuration for current instance

protected string $_haltBehaviour 'no'
#

Halt status during occured errors. Feasible values are

  • "yes" (halt with message)
  • "no" (ignore errors quietly)
  • "report" (ignore errror, but spit a warning)

Halt status during occured errors. Feasible values are

  • "yes" (halt with message)
  • "no" (ignore errors quietly)
  • "report" (ignore errror, but spit a warning)
protected string $_haltMsgPrefix ''
#

Text to prepend to the halt message

Text to prepend to the halt message

protected static array $_profileData array()
#

Profile data array

Profile data array

CMS CONTENIDO 4.9.11 API documentation generated by ApiGen 2.8.0