API Documentation

Zend/Db/Adapter/Abstract.php

Show: inherited
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-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_Db  
Subpackage
Adapter  
Version
$Id: Abstract.php 24667 2012-02-27 02:18:25Z adamlundrigan $  

\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-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Used_by
\Zend_Test_PHPUnit_Db_Connection  

Properties

Propertyprotectedbool  $_allowSerialization= 'true'

Weither or not that object can get serialized

Default valuetrueDetails
Type
bool
Propertyprotectedbool  $_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
Propertyprotectedbool  $_autoReconnectOnUnserialize= 'false'

Weither or not the database should be reconnected to that adapter when waking up

Default valuefalseDetails
Type
bool
Propertyprotectedinteger  $_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 valueZend_Db::CASE_NATURALDetails
Type
integer
Propertyprotectedarray  $_config= 'array()'

User-provided configuration

Default valuearray()Details
Type
array
Propertyprotectedobject|resource|null  $_connection= 'null'

Database connection

Default valuenullDetails
Type
objectresourcenull
Propertyprotectedstring  $_defaultProfilerClass= ''Zend_Db_Profiler''

Default class name for the profiler object.

Default value'Zend_Db_Profiler'Details
Type
string
Propertyprotectedstring  $_defaultStmtClass= ''Zend_Db_Statement''

Default class name for a DB statement.

Default value'Zend_Db_Statement'Details
Type
string
Propertyprotectedinteger  $_fetchMode= 'Zend_Db::FETCH_ASSOC'

Fetch mode

Default valueZend_Db::FETCH_ASSOCDetails
Type
integer
Propertyprotectedarray  $_numericDataTypes= 'array( Zend_Db::INT_TYPE => Zend_Db::INT_TYPE'

Keys are UPPERCASE SQL datatypes or the constants Zend_Db::INT_TYPE, Zend_Db::BIGINT_TYPE, or Zend_Db::FLOAT_TYPE.

Associative array of datatypes to values 0, 1, or 2.

Values are: 0 = 32-bit integer 1 = 64-bit integer 2 = float or decimal

Default valuearray( Zend_Db::INT_TYPE => Zend_Db::INT_TYPEDetails
Type
array
Propertyprotected\Zend_Db_Profiler  $_profiler= ''

Query profiler object, of type Zend_Db_Profiler or a subclass of that.

Details
Type
\Zend_Db_Profiler

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

Parameters
Name Type Description
$config array|\Zend_Config

An array or instance of Zend_Config having configuration data

Throws
Exception Description
\Zend_Db_Adapter_Exception
methodpublic__sleep( ) : array

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

Returns
Type Description
array
Throws
Exception Description
\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
Name Type Description
$config array
Throws
Exception Description
\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
Name Type Description
$value string

Raw string

Returns
Type Description
string Quoted string
methodprotected_quoteIdentifier( string $value, boolean $auto = false ) : string

Quote an identifier.

Parameters
Name Type Description
$value string

The identifier or expression.

$auto boolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
Type Description
string The 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
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.

Returns
Type Description
string The 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
Name Type Description
$where mixed
Returns
Type Description
string
methodpublicbeginTransaction( ) : \Zend_Db_Adapter_Abstract

Leave autocommit mode and begin a transaction.

Returns
Type Description
\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
Type Description
\Zend_Db_Adapter_Abstract
methodpublicdelete( mixed $table, mixed $where = '' ) : int

Deletes table rows based on a WHERE clause.

Parameters
Name Type Description
$table mixed

The table to update.

$where mixed

DELETE WHERE clause(s).

Returns
Type Description
int The 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
Name Type Description
$tableName string
$schemaName string

OPTIONAL

Returns
Type Description
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
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.

Returns
Type Description
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
Name Type Description
$sql string|\Zend_Db_Select

An SQL SELECT statement.

$bind mixed

Data to bind into SELECT placeholders.

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

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

Parameters
Name Type Description
$sql string|\Zend_Db_Select

An SQL SELECT statement.

$bind mixed

Data to bind into SELECT placeholders.

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

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

Parameters
Name Type Description
$sql string|\Zend_Db_Select

An SQL SELECT statement.

$bind mixed

Data to bind into SELECT placeholders.

Returns
Type Description
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
Name Type Description
$sql string|\Zend_Db_Select

An SQL SELECT statement.

$bind mixed

Data to bind into SELECT placeholders.

Returns
Type Description
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
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.

Returns
Type Description
mixed Array, 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
Name Type Description
$key string
Returns
Type Description
string
methodpublicgetConfig( ) : array

Returns the configuration variables in this adapter.

Returns
Type Description
array
methodpublicgetConnection( ) : object|resource|null

Returns the underlying database connection object or resource.

If not presently connected, this initiates the connection.

Returns
Type Description
object|resource|null
methodpublicgetFetchMode( ) : int

Get the fetch mode.

Returns
Type Description
int
methodpublicgetProfiler( ) : \Zend_Db_Profiler

Returns the profiler for this adapter.

Returns
Type Description
\Zend_Db_Profiler
methodpublicgetQuoteIdentifierSymbol( ) : string

Returns the symbol the adapter uses for delimited identifiers.

Returns
Type Description
string
methodpublicgetServerVersion( ) : string
abstract

Retrieve server version in PHP style

Returns
Type Description
string
methodpublicgetStatementClass( ) : string

Get the default statement class.

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

Inserts a table row with specified data.

Parameters
Name Type Description
$table mixed

The table to insert data into.

$bind array

Column-value pairs.

Returns
Type Description
int The number of affected rows.
Throws
Exception Description
\Zend_Db_Adapter_Exception
methodpublicisConnected( ) : boolean
abstract

Test if a connection is active

Returns
Type Description
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
Name Type Description
$tableName string

OPTIONAL Name of table.

$primaryKey string

OPTIONAL Name of primary key column.

Returns
Type Description
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
Name Type Description
$sequenceName string
Returns
Type Description
string
methodpubliclimit( mixed $sql, integer $count, integer $offset = 0 ) : string
abstract

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

Parameters
Name Type Description
$sql mixed
$count integer
$offset integer
Returns
Type Description
string
methodpubliclistTables( ) : array
abstract

Returns a list of the tables in the database.

Returns
Type Description
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
Name Type Description
$sequenceName string
Returns
Type Description
string
methodpublicprepare( string|\Zend_Db_Select $sql ) : \Zend_Db_Statement|\PDOStatement
abstract

Prepare a statement and return a PDOStatement-like object.

Parameters
Name Type Description
$sql string|\Zend_Db_Select

SQL query

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

Prepares and executes an SQL statement with bound data.

Parameters
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.

Returns
Type Description
\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
Name Type Description
$value mixed

The value to quote.

$type mixed

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

Returns
Type Description
mixed An 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
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.

Returns
Type Description
string The 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
Name Type Description
$ident string|array|\Zend_Db_Expr

The identifier.

$auto boolean

If true, heed the AUTO_QUOTE_IDENTIFIERS config option.

Returns
Type Description
string The 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
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

Returns
Type Description
string An 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
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.

Returns
Type Description
string The quoted identifier and alias.
methodpublicrollBack( ) : \Zend_Db_Adapter_Abstract

Roll back a transaction and return to autocommit mode.

Returns
Type Description
\Zend_Db_Adapter_Abstract
methodpublicselect( ) : \Zend_Db_Select

Creates and returns a new Zend_Db_Select object for this adapter.

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

Set the fetch mode.

Parameters
Name Type Description
$mode integer
Throws
Exception Description
\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
Name Type Description
$profiler \Zend_Db_Profiler|\Zend_Config|array|boolean
Returns
Type Description
\Zend_Db_Adapter_Abstract Provides a fluent interface
Throws
Exception Description
\Zend_Db_Profiler_Exception if 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
Name Type Description
$class
Returns
Type Description
\Zend_Db_Adapter_Abstract Fluent interface
methodpublicsupportsParameters( string $type ) : bool
abstract

Check if the adapter supports real SQL parameters.

Parameters
Name Type Description
$type string

'positional' or 'named'

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

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

Parameters
Name Type Description
$table mixed

The table to update.

$bind array

Column-value pairs.

$where mixed

UPDATE WHERE clause(s).

Returns
Type Description
int The number of affected rows.
Throws
Exception Description
\Zend_Db_Adapter_Exception
Documentation was generated by DocBlox 0.15.1.