Db/Adapter/Abstract.php

Show: PublicProtectedPrivateinherited
Table of Contents
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 license@zend.com so we can send you a copy immediately.
Category
Zend  
Copyright
Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_Db  
Subpackage
Adapter  
Version
$Id$  

\Zend_Db_Adapter_Abstract

Package: Zend_Db\Adapter
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-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Properties

>VPropertyprotectedbool $_allowSerialization = true
Weither or not that object can get serialized
Default valuetrueDetails
Type
bool
>VPropertyprotectedbool $_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().
Default valuetrueDetails
Type
bool
>VPropertyprotectedbool $_autoReconnectOnUnserialize = false
Weither or not the database should be reconnected to that adapter when waking up
Default valuefalseDetails
Type
bool
>VPropertyprotectedinteger $_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
Default value\Zend_Db::CASE_NATURALDetails
Type
integer
>VPropertyprotectedarray $_config = array()
User-provided configuration
Default valuearray()Details
Type
array
>VPropertyprotectedobject|resource|null $_connection = null
Database connection
Default valuenullDetails
Type
object | resource | null
>VPropertyprotectedstring $_defaultProfilerClass = 'Zend_Db_Profiler'
Default class name for the profiler object.
Default value'Zend_Db_Profiler'Details
Type
string
>VPropertyprotectedstring $_defaultStmtClass = 'Zend_Db_Statement'
Default class name for a DB statement.
Default value'Zend_Db_Statement'Details
Type
string
>VPropertyprotectedinteger $_fetchMode = \Zend_Db::FETCH_ASSOC
Fetch mode
Default value\Zend_Db::FETCH_ASSOCDetails
Type
integer
>VPropertyprotectedarray $_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.
Values are: 0 = 32-bit integer 1 = 64-bit integer 2 = float or decimal
Default valuearray(\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
>VPropertyprotected\Zend_Db_Profiler $_profiler
Query profiler object, of type Zend_Db_Profiler or a subclass of that.

Methods

methodpublic__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
Parameters
NameTypeDescription
$configarray | \Zend_Config

An array or instance of Zend_Config having configuration data

Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
methodpublic__sleep() : array

called when object is getting serialized This disconnects the DB object that cant be serialized

Returns
TypeDescription
array
Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
methodpublic__wakeup() : void

called when object is getting unserialized

methodprotected_beginTransaction() : void
abstract

Begin a transaction.

methodprotected_checkRequiredOptions(array $config) : void

Check for config options that are mandatory.

Throw exceptions if any are missing.
Parameters
NameTypeDescription
$configarray
Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
methodprotected_commit() : void
abstract

Commit a transaction.

methodprotected_connect() : void
abstract

Creates a connection to the database.

methodprotected_quote(string $value) : string

Quote a raw string.

Parameters
NameTypeDescription
$valuestring

Raw string

Returns
TypeDescription
stringQuoted string
methodprotected_quoteIdentifier(string $value, boolean $auto = false) : string

Quote an identifier.

Parameters
NameTypeDescription
$valuestring

The identifier or expression.

$autoboolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
TypeDescription
stringThe quoted identifier and alias.
methodprotected_quoteIdentifierAs(string | array | \Zend_Db_Expr $ident, string $alias = null, boolean $auto = false, string $as = ' AS ') : string

Quote an identifier and an optional alias.

Parameters
NameTypeDescription
$identstring | array | \Zend_Db_Expr

The identifier or expression.

$aliasstring

An optional alias.

$autoboolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

$asstring

The string to add between the identifier/expression and the alias.

Returns
TypeDescription
stringThe quoted identifier and alias.
methodprotected_rollBack() : void
abstract

Roll-back a transaction.

methodprotected_whereExpr(mixed $where) : string

Convert an array, string, or Zend_Db_Expr object into a string to put in a WHERE clause.

Parameters
NameTypeDescription
$wheremixed
Returns
TypeDescription
string
methodpublicbeginTransaction() : \Zend_Db_Adapter_Abstract

Leave autocommit mode and begin a transaction.

Returns
TypeDescription
\Zend_Db_Adapter_Abstract
methodpubliccloseConnection() : void
abstract

Force the connection to close.

methodpubliccommit() : \Zend_Db_Adapter_Abstract

Commit a transaction and return to autocommit mode.

Returns
TypeDescription
\Zend_Db_Adapter_Abstract
methodpublicdelete(mixed $table, mixed $where = '') : int

Deletes table rows based on a WHERE clause.

Parameters
NameTypeDescription
$tablemixed

The table to update.

$wheremixed

DELETE WHERE clause(s).

Returns
TypeDescription
intThe number of affected rows.
methodpublicdescribeTable(string $tableName, string $schemaName = null) : array
abstract

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
Parameters
NameTypeDescription
$tableNamestring
$schemaNamestring

OPTIONAL

Returns
TypeDescription
array
methodpublicfetchAll(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.
Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

$fetchModemixed

Override current fetch mode.

Returns
TypeDescription
array
methodpublicfetchAssoc(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.
Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

Returns
TypeDescription
array
methodpublicfetchCol(string | \Zend_Db_Select $sql, mixed $bind = array()) : array

Fetches the first column of all SQL result rows as an array.

Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

Returns
TypeDescription
array
methodpublicfetchOne(string | \Zend_Db_Select $sql, mixed $bind = array()) : string

Fetches the first column of the first row of the SQL result.

Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

Returns
TypeDescription
string
methodpublicfetchPairs(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.
Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

Returns
TypeDescription
array
methodpublicfetchRow(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.
Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

An SQL SELECT statement.

$bindmixed

Data to bind into SELECT placeholders.

$fetchModemixed

Override current fetch mode.

Returns
TypeDescription
mixedArray, object, or scalar depending on fetch mode.
methodpublicfoldCase(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.
Parameters
NameTypeDescription
$keystring
Returns
TypeDescription
string
methodpublicgetConfig() : array

Returns the configuration variables in this adapter.

Returns
TypeDescription
array
methodpublicgetConnection() : object | resource | null

Returns the underlying database connection object or resource.

If not presently connected, this initiates the connection.
Returns
TypeDescription
object | resource | null
methodpublicgetFetchMode() : int

Get the fetch mode.

Returns
TypeDescription
int
methodpublicgetProfiler() : \Zend_Db_Profiler

Returns the profiler for this adapter.

Returns
TypeDescription
\Zend_Db_Profiler
methodpublicgetQuoteIdentifierSymbol() : string

Returns the symbol the adapter uses for delimited identifiers.

Returns
TypeDescription
string
methodpublicgetServerVersion() : string
abstract

Retrieve server version in PHP style

Returns
TypeDescription
string
methodpublicgetStatementClass() : string

Get the default statement class.

Returns
TypeDescription
string
methodpublicinsert(mixed $table, array $bind) : int

Inserts a table row with specified data.

Parameters
NameTypeDescription
$tablemixed

The table to insert data into.

$bindarray

Column-value pairs.

Returns
TypeDescription
intThe number of affected rows.
Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
methodpublicisConnected() : boolean
abstract

Test if a connection is active

Returns
TypeDescription
boolean
methodpubliclastInsertId(string $tableName = null, string $primaryKey = null) : string
abstract

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.
Parameters
NameTypeDescription
$tableNamestring

OPTIONAL Name of table.

$primaryKeystring

OPTIONAL Name of primary key column.

Returns
TypeDescription
string
methodpubliclastSequenceId(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.
Parameters
NameTypeDescription
$sequenceNamestring
Returns
TypeDescription
string
methodpubliclimit(mixed $sql, integer $count, integer $offset = 0) : string
abstract

Adds an adapter-specific LIMIT clause to the SELECT statement.

Parameters
NameTypeDescription
$sqlmixed
$countinteger
$offsetinteger
Returns
TypeDescription
string
methodpubliclistTables() : array
abstract

Returns a list of the tables in the database.

Returns
TypeDescription
array
methodpublicnextSequenceId(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.
Parameters
NameTypeDescription
$sequenceNamestring
Returns
TypeDescription
string
methodpublicprepare(string | \Zend_Db_Select $sql) : \Zend_Db_Statement | \PDOStatement
abstract

Prepare a statement and return a PDOStatement-like object.

Parameters
NameTypeDescription
$sqlstring | \Zend_Db_Select

SQL query

Returns
TypeDescription
\Zend_Db_Statement | \PDOStatement
methodpublicquery(mixed $sql, mixed $bind = array()) : \Zend_Db_Statement_Interface

Prepares and executes an SQL statement with bound data.

Parameters
NameTypeDescription
$sqlmixed

The SQL statement with placeholders. May be a string or Zend_Db_Select.

$bindmixed

An array of data to bind to the placeholders.

Returns
TypeDescription
\Zend_Db_Statement_Interface
methodpublicquote(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.
Parameters
NameTypeDescription
$valuemixed

The value to quote.

$typemixed

OPTIONAL the SQL datatype name, or constant, or null.

Returns
TypeDescription
mixedAn SQL-safe quoted value (or string of separated values).
methodpublicquoteColumnAs(string | array | \Zend_Db_Expr $ident, string $alias, boolean $auto = false) : string

Quote a column identifier and alias.

Parameters
NameTypeDescription
$identstring | array | \Zend_Db_Expr

The identifier or expression.

$aliasstring

An alias for the column.

$autoboolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
TypeDescription
stringThe quoted identifier and alias.
methodpublicquoteIdentifier(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.
Parameters
NameTypeDescription
$identstring | array | \Zend_Db_Expr

The identifier.

$autoboolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
TypeDescription
stringThe quoted identifier.
methodpublicquoteInto(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'"
Parameters
NameTypeDescription
$textstring

The text with a placeholder.

$valuemixed

The value to quote.

$typestring

OPTIONAL SQL datatype

$countinteger

OPTIONAL count of placeholders to replace

Returns
TypeDescription
stringAn SQL-safe quoted value placed into the original text.
methodpublicquoteTableAs(string | array | \Zend_Db_Expr $ident, string $alias = null, boolean $auto = false) : string

Quote a table identifier and alias.

Parameters
NameTypeDescription
$identstring | array | \Zend_Db_Expr

The identifier or expression.

$aliasstring

An alias for the table.

$autoboolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
TypeDescription
stringThe quoted identifier and alias.
methodpublicrollBack() : \Zend_Db_Adapter_Abstract

Roll back a transaction and return to autocommit mode.

Returns
TypeDescription
\Zend_Db_Adapter_Abstract
methodpublicselect() : \Zend_Db_Select

Creates and returns a new Zend_Db_Select object for this adapter.

Returns
TypeDescription
\Zend_Db_Select
methodpublicsetFetchMode(integer $mode) : void
abstract

Set the fetch mode.

Parameters
NameTypeDescription
$modeinteger
Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
methodpublicsetProfiler(\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.
Parameters
NameTypeDescription
$profiler\Zend_Db_Profiler | \Zend_Config | array | boolean
Returns
TypeDescription
\Zend_Db_Adapter_AbstractProvides a fluent interface
Throws
ExceptionDescription
\Zend_Db_Profiler_Exceptionif the object instance or class specified is not Zend_Db_Profiler or an extension of that class.
methodpublicsetStatementClass( $class) : \Zend_Db_Adapter_Abstract

Set the default statement class.

Parameters
NameTypeDescription
$class
Returns
TypeDescription
\Zend_Db_Adapter_AbstractFluent interface
methodpublicsupportsParameters(string $type) : bool
abstract

Check if the adapter supports real SQL parameters.

Parameters
NameTypeDescription
$typestring

'positional' or 'named'

Returns
TypeDescription
bool
methodpublicupdate(mixed $table, array $bind, mixed $where = '') : int

Updates table rows with specified data based on a WHERE clause.

Parameters
NameTypeDescription
$tablemixed

The table to update.

$bindarray

Column-value pairs.

$wheremixed

UPDATE WHERE clause(s).

Returns
TypeDescription
intThe number of affected rows.
Throws
ExceptionDescription
\Zend_Db_Adapter_Exception
Documentation was generated by phpDocumentor 2.2.0 .