Db/Adapter/Abstract.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Db
- Subpackage
- Adapter
- Version
- $Id: Abstract.php 25229 2013-01-18 08:17:21Z frosch $
\Zend_Db_Adapter_Abstract
Class for connecting to SQL databases and performing common operations.
- Children
- \Zend_Db_Adapter_Oracle
- \Zend_Db_Adapter_Mysqli
- \Zend_Db_Adapter_Pdo_Abstract
- \Zend_Db_Adapter_Sqlsrv
- \Zend_Db_Adapter_Db2
- \Zend_Test_DbAdapter
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties


bool $_allowSerialization = true
Weither or not that object can get serialized
true
Details- Type
- bool


bool $_autoQuoteIdentifiers = true
Specifies whether the adapter automatically quotes identifiers.
If true, most SQL generated by Zend_Db classes applies identifier quoting automatically. If false, developer must quote identifiers themselves by calling quoteIdentifier().
true
Details- Type
- bool


bool $_autoReconnectOnUnserialize = false
Weither or not the database should be reconnected to that adapter when waking up
false
Details- Type
- bool


integer $_caseFolding = \Zend_Db::CASE_NATURAL
Specifies the case of column names retrieved in queries Options Zend_Db::CASE_NATURAL (default) Zend_Db::CASE_LOWER Zend_Db::CASE_UPPER
\Zend_Db::CASE_NATURAL
Details- Type
- integer


object|resource|null $_connection = null
Database connection
null
Details- Type
- object | resource | null


string $_defaultProfilerClass = 'Zend_Db_Profiler'
Default class name for the profiler object.
'Zend_Db_Profiler'
Details- Type
- string


string $_defaultStmtClass = 'Zend_Db_Statement'
Default class name for a DB statement.
'Zend_Db_Statement'
Details- Type
- string


integer $_fetchMode = \Zend_Db::FETCH_ASSOC
Fetch mode
\Zend_Db::FETCH_ASSOC
Details- Type
- integer


array $_numericDataTypes = array(\Zend_Db::INT_TYPE => \Zend_Db::INT_TYPE, \Zend_Db::BIGINT_TYPE => \Zend_Db::BIGINT_TYPE, \Zend_Db::FLOAT_TYPE => \Zend_Db::FLOAT_TYPE)
Keys are UPPERCASE SQL datatypes or the constants Zend_Db::INT_TYPE, Zend_Db::BIGINT_TYPE, or Zend_Db::FLOAT_TYPE.
<p>Associative array of datatypes to values 0, 1, or 2.</p>Values are: 0 = 32-bit integer 1 = 64-bit integer 2 = float or decimal
array(\Zend_Db::INT_TYPE => \Zend_Db::INT_TYPE, \Zend_Db::BIGINT_TYPE => \Zend_Db::BIGINT_TYPE, \Zend_Db::FLOAT_TYPE => \Zend_Db::FLOAT_TYPE)
Details- Type
- array


\Zend_Db_Profiler $_profiler =
Query profiler object, of type Zend_Db_Profiler or a subclass of that.
- Type
- \Zend_Db_Profiler
Methods


__construct(array | \Zend_Config $config) : void
Constructor.
$config is an array of key/value pairs or an instance of Zend_Config containing configuration options. These options are common to most adapters:
dbname => (string) The name of the database to user username => (string) Connect to the database as this username. password => (string) Password associated with the username. host => (string) What host to connect to, defaults to localhost
Some options are used on a case-by-case basis by adapters:
port => (string) The port of the database persistent => (boolean) Whether to use a persistent connection or not, defaults to false protocol => (string) The network protocol, defaults to TCPIP caseFolding => (int) style of case-alteration used for identifiers socket => (string) The socket or named pipe that should be used
Name | Type | Description |
---|---|---|
$config | array | \Zend_Config | An array or instance of Zend_Config having configuration data |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |


__sleep() : array
called when object is getting serialized This disconnects the DB object that cant be serialized
Type | Description |
---|---|
array |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |


_checkRequiredOptions(array $config) : void
Check for config options that are mandatory.
Throw exceptions if any are missing.
Name | Type | Description |
---|---|---|
$config | array |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |


_quote(string $value) : string
Quote a raw string.
Name | Type | Description |
---|---|---|
$value | string | Raw string |
Type | Description |
---|---|
string | Quoted string |


_quoteIdentifier(string $value, boolean $auto = false) : string
Quote an identifier.
Name | Type | Description |
---|---|---|
$value | string | The identifier or expression. |
$auto | boolean | If true, heed the AUTO_QUOTE_IDENTIFIERS config option. |
Type | Description |
---|---|
string | The quoted identifier and alias. |


_quoteIdentifierAs(string | array | \Zend_Db_Expr $ident, string $alias = null, boolean $auto = false, string $as = ' AS ') : string
Quote an identifier and an optional alias.
Name | Type | Description |
---|---|---|
$ident | string | array | \Zend_Db_Expr | The identifier or expression. |
$alias | string | An optional alias. |
$auto | boolean | If true, heed the AUTO_QUOTE_IDENTIFIERS config option. |
$as | string | The string to add between the identifier/expression and the alias. |
Type | Description |
---|---|
string | The quoted identifier and alias. |


_whereExpr(mixed $where) : string
Convert an array, string, or Zend_Db_Expr object into a string to put in a WHERE clause.
Name | Type | Description |
---|---|---|
$where | mixed |
Type | Description |
---|---|
string |


beginTransaction() : \Zend_Db_Adapter_Abstract
Leave autocommit mode and begin a transaction.
Type | Description |
---|---|
\Zend_Db_Adapter_Abstract |


commit() : \Zend_Db_Adapter_Abstract
Commit a transaction and return to autocommit mode.
Type | Description |
---|---|
\Zend_Db_Adapter_Abstract |


delete(mixed $table, mixed $where = '') : int
Deletes table rows based on a WHERE clause.
Name | Type | Description |
---|---|---|
$table | mixed | The table to update. |
$where | mixed | DELETE WHERE clause(s). |
Type | Description |
---|---|
int | The number of affected rows. |


describeTable(string $tableName, string $schemaName = null) : array
Returns the column descriptions for a table.
The return value is an associative array keyed by the column name, as returned by the RDBMS.
The value of each array element is an associative array with the following keys:
SCHEMA_NAME => string; name of database or schema TABLE_NAME => string; COLUMN_NAME => string; column name COLUMN_POSITION => number; ordinal position of column in table DATA_TYPE => string; SQL datatype name of column DEFAULT => string; default expression of column, null if none NULLABLE => boolean; true if column can have nulls LENGTH => number; length of CHAR/VARCHAR SCALE => number; scale of NUMERIC/DECIMAL PRECISION => number; precision of NUMERIC/DECIMAL UNSIGNED => boolean; unsigned property of an integer type PRIMARY => boolean; true if column is part of the primary key PRIMARY_POSITION => integer; position of column in primary key
Name | Type | Description |
---|---|---|
$tableName | string | |
$schemaName | string | OPTIONAL |
Type | Description |
---|---|
array |


fetchAll(string | \Zend_Db_Select $sql, mixed $bind = array(), mixed $fetchMode = null) : array
Fetches all SQL result rows as a sequential array.
Uses the current fetchMode for the adapter.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
$fetchMode | mixed | Override current fetch mode. |
Type | Description |
---|---|
array |


fetchAssoc(string | \Zend_Db_Select $sql, mixed $bind = array()) : array
Fetches all SQL result rows as an associative array.
The first column is the key, the entire row array is the value. You should construct the query to be sure that the first column contains unique values, or else rows with duplicate values in the first column will overwrite previous data.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
Type | Description |
---|---|
array |


fetchCol(string | \Zend_Db_Select $sql, mixed $bind = array()) : array
Fetches the first column of all SQL result rows as an array.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
Type | Description |
---|---|
array |


fetchOne(string | \Zend_Db_Select $sql, mixed $bind = array()) : string
Fetches the first column of the first row of the SQL result.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
Type | Description |
---|---|
string |


fetchPairs(string | \Zend_Db_Select $sql, mixed $bind = array()) : array
Fetches all SQL result rows as an array of key-value pairs.
The first column is the key, the second column is the value.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
Type | Description |
---|---|
array |


fetchRow(string | \Zend_Db_Select $sql, mixed $bind = array(), mixed $fetchMode = null) : mixed
Fetches the first row of the SQL result.
Uses the current fetchMode for the adapter.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | An SQL SELECT statement. |
$bind | mixed | Data to bind into SELECT placeholders. |
$fetchMode | mixed | Override current fetch mode. |
Type | Description |
---|---|
mixed | Array, object, or scalar depending on fetch mode. |


foldCase(string $key) : string
Helper method to change the case of the strings used when returning result sets in FETCH_ASSOC and FETCH_BOTH modes.
This is not intended to be used by application code, but the method must be public so the Statement class can invoke it.
Name | Type | Description |
---|---|---|
$key | string |
Type | Description |
---|---|
string |


getConfig() : array
Returns the configuration variables in this adapter.
Type | Description |
---|---|
array |


getConnection() : object | resource | null
Returns the underlying database connection object or resource.
If not presently connected, this initiates the connection.
Type | Description |
---|---|
object | resource | null |


getProfiler() : \Zend_Db_Profiler
Returns the profiler for this adapter.
Type | Description |
---|---|
\Zend_Db_Profiler |


getQuoteIdentifierSymbol() : string
Returns the symbol the adapter uses for delimited identifiers.
Type | Description |
---|---|
string |


getServerVersion() : string
Retrieve server version in PHP style
Type | Description |
---|---|
string |


insert(mixed $table, array $bind) : int
Inserts a table row with specified data.
Name | Type | Description |
---|---|---|
$table | mixed | The table to insert data into. |
$bind | array | Column-value pairs. |
Type | Description |
---|---|
int | The number of affected rows. |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |


lastInsertId(string $tableName = null, string $primaryKey = null) : string
Gets the last ID generated automatically by an IDENTITY/AUTOINCREMENT column.
As a convention, on RDBMS brands that support sequences (e.g. Oracle, PostgreSQL, DB2), this method forms the name of a sequence from the arguments and returns the last id generated by that sequence. On RDBMS brands that support IDENTITY/AUTOINCREMENT columns, this method returns the last value generated for such a column, and the table name argument is disregarded.
Name | Type | Description |
---|---|---|
$tableName | string | OPTIONAL Name of table. |
$primaryKey | string | OPTIONAL Name of primary key column. |
Type | Description |
---|---|
string |


lastSequenceId(string $sequenceName) : string
Return the most recent value from the specified sequence in the database.
This is supported only on RDBMS brands that support sequences (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
Name | Type | Description |
---|---|---|
$sequenceName | string |
Type | Description |
---|---|
string |


limit(mixed $sql, integer $count, integer $offset = 0) : string
Adds an adapter-specific LIMIT clause to the SELECT statement.
Name | Type | Description |
---|---|---|
$sql | mixed | |
$count | integer | |
$offset | integer |
Type | Description |
---|---|
string |


listTables() : array
Returns a list of the tables in the database.
Type | Description |
---|---|
array |


nextSequenceId(string $sequenceName) : string
Generate a new value from the specified sequence in the database, and return it.
This is supported only on RDBMS brands that support sequences (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
Name | Type | Description |
---|---|---|
$sequenceName | string |
Type | Description |
---|---|
string |


prepare(string | \Zend_Db_Select $sql) : \Zend_Db_Statement | \PDOStatement
Prepare a statement and return a PDOStatement-like object.
Name | Type | Description |
---|---|---|
$sql | string | \Zend_Db_Select | SQL query |
Type | Description |
---|---|
\Zend_Db_Statement | \PDOStatement |


query(mixed $sql, mixed $bind = array()) : \Zend_Db_Statement_Interface
Prepares and executes an SQL statement with bound data.
Name | Type | Description |
---|---|---|
$sql | mixed | The SQL statement with placeholders. May be a string or Zend_Db_Select. |
$bind | mixed | An array of data to bind to the placeholders. |
Type | Description |
---|---|
\Zend_Db_Statement_Interface |


quote(mixed $value, mixed $type = null) : mixed
Safely quotes a value for an SQL statement.
If an array is passed as the value, the array values are quoted and then returned as a comma-separated string.
Name | Type | Description |
---|---|---|
$value | mixed | The value to quote. |
$type | mixed | OPTIONAL the SQL datatype name, or constant, or null. |
Type | Description |
---|---|
mixed | An SQL-safe quoted value (or string of separated values). |


quoteColumnAs(string | array | \Zend_Db_Expr $ident, string $alias, boolean $auto = false) : string
Quote a column identifier and alias.
Name | Type | Description |
---|---|---|
$ident | string | array | \Zend_Db_Expr | The identifier or expression. |
$alias | string | An alias for the column. |
$auto | boolean | If true, heed the AUTO_QUOTE_IDENTIFIERS config option. |
Type | Description |
---|---|
string | The quoted identifier and alias. |


quoteIdentifier(string | array | \Zend_Db_Expr $ident, boolean $auto = false) : string
Quotes an identifier.
Accepts a string representing a qualified indentifier. For Example:
$adapter->quoteIdentifier('myschema.mytable')
Returns: "myschema"."mytable"
Or, an array of one or more identifiers that may form a qualified identifier:
$adapter->quoteIdentifier(array('myschema','my.table'))
Returns: "myschema"."my.table"
The actual quote character surrounding the identifiers may vary depending on the adapter.
Name | Type | Description |
---|---|---|
$ident | string | array | \Zend_Db_Expr | The identifier. |
$auto | boolean | If true, heed the AUTO_QUOTE_IDENTIFIERS config option. |
Type | Description |
---|---|
string | The quoted identifier. |


quoteInto(string $text, mixed $value, string $type = null, integer $count = null) : string
Quotes a value and places into a piece of text at a placeholder.
The placeholder is a question-mark; all placeholders will be replaced with the quoted value. For example:
$text = "WHERE date < ?";
$date = "2005-01-02";
$safe = $sql->quoteInto($text, $date);
// $safe = "WHERE date < '2005-01-02'"
Name | Type | Description |
---|---|---|
$text | string | The text with a placeholder. |
$value | mixed | The value to quote. |
$type | string | OPTIONAL SQL datatype |
$count | integer | OPTIONAL count of placeholders to replace |
Type | Description |
---|---|
string | An SQL-safe quoted value placed into the original text. |


quoteTableAs(string | array | \Zend_Db_Expr $ident, string $alias = null, boolean $auto = false) : string
Quote a table identifier and alias.
Name | Type | Description |
---|---|---|
$ident | string | array | \Zend_Db_Expr | The identifier or expression. |
$alias | string | An alias for the table. |
$auto | boolean | If true, heed the AUTO_QUOTE_IDENTIFIERS config option. |
Type | Description |
---|---|
string | The quoted identifier and alias. |


rollBack() : \Zend_Db_Adapter_Abstract
Roll back a transaction and return to autocommit mode.
Type | Description |
---|---|
\Zend_Db_Adapter_Abstract |


select() : \Zend_Db_Select
Creates and returns a new Zend_Db_Select object for this adapter.
Type | Description |
---|---|
\Zend_Db_Select |


setFetchMode(integer $mode) : void
Set the fetch mode.
Name | Type | Description |
---|---|---|
$mode | integer |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |


setProfiler(\Zend_Db_Profiler | \Zend_Config | array | boolean $profiler) : \Zend_Db_Adapter_Abstract
Set the adapter's profiler object.
The argument may be a boolean, an associative array, an instance of Zend_Db_Profiler, or an instance of Zend_Config.
A boolean argument sets the profiler to enabled if true, or disabled if false. The profiler class is the adapter's default profiler class, Zend_Db_Profiler.
An instance of Zend_Db_Profiler sets the adapter's instance to that object. The profiler is enabled and disabled separately.
An associative array argument may contain any of the keys 'enabled', 'class', and 'instance'. The 'enabled' and 'instance' keys correspond to the boolean and object types documented above. The 'class' key is used to name a class to use for a custom profiler. The class must be Zend_Db_Profiler or a subclass. The class is instantiated with no constructor arguments. The 'class' option is ignored when the 'instance' option is supplied.
An object of type Zend_Config may contain the properties 'enabled', 'class', and 'instance', just as if an associative array had been passed instead.
Name | Type | Description |
---|---|---|
$profiler | \Zend_Db_Profiler | \Zend_Config | array | boolean |
Type | Description |
---|---|
\Zend_Db_Adapter_Abstract | Provides a fluent interface |
Exception | Description |
---|---|
\Zend_Db_Profiler_Exception | if the object instance or class specified is not Zend_Db_Profiler or an extension of that class. |


setStatementClass( $class) : \Zend_Db_Adapter_Abstract
Set the default statement class.
Name | Type | Description |
---|---|---|
$class |
Type | Description |
---|---|
\Zend_Db_Adapter_Abstract | Fluent interface |


supportsParameters(string $type) : bool
Check if the adapter supports real SQL parameters.
Name | Type | Description |
---|---|---|
$type | string | 'positional' or 'named' |
Type | Description |
---|---|
bool |


update(mixed $table, array $bind, mixed $where = '') : int
Updates table rows with specified data based on a WHERE clause.
Name | Type | Description |
---|---|---|
$table | mixed | The table to update. |
$bind | array | Column-value pairs. |
$where | mixed | UPDATE WHERE clause(s). |
Type | Description |
---|---|
int | The number of affected rows. |
Exception | Description |
---|---|
\Zend_Db_Adapter_Exception |