abstract class DBAdapter
DBAdapter</code> defines the interface for a Propel database adapter.
<p>Support for new databases is added by subclassing
<code>DBAdapter</code> and implementing its abstract interface, and by
registering the new database adapter and corresponding Propel
driver in the private adapters map (array) in this class.</p>
<p>The Propel database adapters exist to present a uniform
interface to database access across all available databases. Once
the necessary adapters have been written and configured,
transparent swapping of databases is theoretically supported with
<i>zero code change</i> and minimal configuration file
modifications.</p>
Constants
ID_METHOD_NONE |
|
ID_METHOD_AUTOINCREMENT |
|
ID_METHOD_SEQUENCE |
|
Methods
static DBAdapter |
factory(string $driver)
Creates a new instance of the database adapter associated with the specified Propel driver. |
|
array |
prepareParams($settings)
Prepare connection parameters. |
|
initConnection(PDO $con, array $settings)
This method is called after a connection was created to run necessary post-initialization queries or code. |
||
setCharset(PDO $con, string $charset)
Sets the character encoding using SQL standard SET NAMES statement. |
||
string |
toUpperCase(string $in)
This method is used to ignore case. |
|
string |
getStringDelimiter()
Returns the character used to indicate the beginning and end of a piece of text used in a SQL statement (generally a single quote). |
|
string |
ignoreCase(string $in)
This method is used to ignore case. |
|
string |
ignoreCaseInOrderBy(string $in)
This method is used to ignore case in an ORDER BY clause. |
|
string |
concatString(string $s1, string $s2)
Returns SQL which concatenates the second string to the first. |
|
string |
subString(string $s, integer $pos, integer $len)
Returns SQL which extracts a substring. |
|
string |
strLength(string $s)
Returns SQL which calculates the length (in chars) of a string. |
|
string |
quoteIdentifier(string $text)
Quotes database objec identifiers (table names, col names, sequences, etc.). |
|
string |
quoteIdentifierTable(string $table)
Quotes a database table which could have space seperating it from an alias, both should be identified seperately This doesn't take care of dots which separate schema names from table names. |
|
boolean |
isGetIdBeforeInsert()
Whether this adapter uses an ID generation system that requires getting ID _before_ performing INSERT. |
|
boolean |
isGetIdAfterInsert()
Whether this adapter uses an ID generation system that requires getting ID _before_ performing INSERT. |
|
mixed |
getId(PDO $con, string $name = null)
Gets the generated ID (either last ID for autoincrement or next sequence ID). |
|
string |
formatTemporalValue(mixed $value, mixed $type)
Formats a temporal value brefore binding, given a ColumnMap object. |
|
string |
getTimestampFormatter()
Returns timestamp formatter string for use in date() function. |
|
string |
getDateFormatter()
Returns date formatter string for use in date() function. |
|
string |
getTimeFormatter()
Returns time formatter string for use in date() function. |
|
useQuoteIdentifier()
Should Column-Names get identifiers for inserts or updates. |
||
cleanupSQL(string $sql, array $params, Criteria $values, DatabaseMap $dbMap)
Allows manipulation of the query string before PDOStatement is instantiated. |
||
applyLimit(string $sql, integer $offset, integer $limit)
Modifies the passed-in SQL to add LIMIT and/or OFFSET. |
||
random(mixed $seed = null)
Gets the SQL string that this adapter uses for getting a random number. |
||
string |
getDeleteFromClause(Criteria $criteria, string $tableName)
Returns the "DELETE FROM <table> [AS <alias>]" part of DELETE query. |
|
string |
createSelectSqlPart(Criteria $criteria, array $fromClause, boolean $aliasAll = false)
Builds the SELECT part of a SQL statement based on a Criteria taking into account select columns and 'as' columns (i.e. |
|
Criteria |
turnSelectColumnsToAliases(Criteria $criteria)
Ensures uniqueness of select column names by turning them all into aliases This is necessary for queries on more than one table when the tables share a column name Moved from BasePeer to DBAdapter and turned from static to non static |
|
bindValues(PDOStatement $stmt, array $params, DatabaseMap $dbMap)
Binds values in a prepared statement. |
||
boolean |
bindValue(PDOStatement $stmt, string $parameter, mixed $value, ColumnMap $cMap, null|integer $position = null)
Binds a value to a positioned parameted in a statement, given a ColumnMap object to infer the binding type. |
|
PDOStatement |
doExplainPlan(PropelPDO $con, ModelCriteria|string $query)
Do Explain Plan for query object or query string |
Details
at line 65
static public DBAdapter
factory(string $driver)
Creates a new instance of the database adapter associated with the specified Propel driver.
at line 83
public array
prepareParams($settings)
Prepare connection parameters.
at line 102
public
initConnection(PDO $con, array $settings)
This method is called after a connection was created to run necessary post-initialization queries or code.
If a charset was specified, this will be set before any other queries
are executed.
This base method runs queries specified using the "query" setting.
at line 127
public
setCharset(PDO $con, string $charset)
Sets the character encoding using SQL standard SET NAMES statement.
This method is invoked from the default initConnection() method and must
be overridden for an RDMBS which does _not_ support this SQL standard.
at line 138
abstract public string
toUpperCase(string $in)
This method is used to ignore case.
at line 147
public string
getStringDelimiter()
Returns the character used to indicate the beginning and end of a piece of text used in a SQL statement (generally a single quote).
at line 158
abstract public string
ignoreCase(string $in)
This method is used to ignore case.
at line 169
public string
ignoreCaseInOrderBy(string $in)
This method is used to ignore case in an ORDER BY clause.
Usually it is the same as ignoreCase, but some databases
(Interbase for example) does not use the same SQL in ORDER BY
and other clauses.
at line 182
abstract public string
concatString(string $s1, string $s2)
Returns SQL which concatenates the second string to the first.
at line 193
abstract public string
subString(string $s, integer $pos, integer $len)
Returns SQL which extracts a substring.
at line 201
abstract public string
strLength(string $s)
Returns SQL which calculates the length (in chars) of a string.
at line 208
public string
quoteIdentifier(string $text)
Quotes database objec identifiers (table names, col names, sequences, etc.).
at line 221
public string
quoteIdentifierTable(string $table)
Quotes a database table which could have space seperating it from an alias, both should be identified seperately This doesn't take care of dots which separate schema names from table names.
Adapters for RDBMs which support
schemas have to implement that in the platform-specific way.
at line 241
public boolean
isGetIdBeforeInsert()
Whether this adapter uses an ID generation system that requires getting ID _before_ performing INSERT.
at line 251
public boolean
isGetIdAfterInsert()
Whether this adapter uses an ID generation system that requires getting ID _before_ performing INSERT.
at line 266
public mixed
getId(PDO $con, string $name = null)
Gets the generated ID (either last ID for autoincrement or next sequence ID).
Warning: duplicates logic from DefaultPlatform::getIdentifierPhp().
Any code modification here must be ported there.
at line 279
public string
formatTemporalValue(mixed $value, mixed $type)
Formats a temporal value brefore binding, given a ColumnMap object.
at line 309
public string
getTimestampFormatter()
Returns timestamp formatter string for use in date() function.
at line 319
public string
getDateFormatter()
Returns date formatter string for use in date() function.
at line 329
public string
getTimeFormatter()
Returns time formatter string for use in date() function.
at line 345
public
useQuoteIdentifier()
Should Column-Names get identifiers for inserts or updates.
By default false is returned -> backwards compability.
it`s a workaround...!!!
at line 358
public
cleanupSQL(string $sql, array $params, Criteria $values, DatabaseMap $dbMap)
Allows manipulation of the query string before PDOStatement is instantiated.
at line 369
abstract public
applyLimit(string $sql, integer $offset, integer $limit)
Modifies the passed-in SQL to add LIMIT and/or OFFSET.
at line 376
abstract public
random(mixed $seed = null)
Gets the SQL string that this adapter uses for getting a random number.
at line 386
public string
getDeleteFromClause(Criteria $criteria, string $tableName)
Returns the "DELETE FROM <table> [AS <alias>]" part of DELETE query.
at line 418
public string
createSelectSqlPart(Criteria $criteria, array $fromClause, boolean $aliasAll = false)
Builds the SELECT part of a SQL statement based on a Criteria taking into account select columns and 'as' columns (i.e.
columns aliases)
Move from BasePeer to DBAdapter and turn from static to non static
at line 489
public Criteria
turnSelectColumnsToAliases(Criteria $criteria)
Ensures uniqueness of select column names by turning them all into aliases This is necessary for queries on more than one table when the tables share a column name Moved from BasePeer to DBAdapter and turned from static to non static
at line 539
public
bindValues(PDOStatement $stmt, array $params, DatabaseMap $dbMap)
Binds values in a prepared statement.
This method is designed to work with the BasePeer::createSelectSql() method, which creates
both the SELECT SQL statement and populates a passed-in array of parameter
values that should be substituted.
<code>
$db = Propel::getDB($criteria->getDbName());
$sql = BasePeer::createSelectSql($criteria, $params);
$stmt = $con->prepare($sql);
$params = array();
$db->populateStmtValues($stmt, $params, Propel::getDatabaseMap($critera->getDbName()));
$stmt->execute();
</code>
at line 575
public boolean
bindValue(PDOStatement $stmt, string $parameter, mixed $value, ColumnMap $cMap, null|integer $position = null)
Binds a value to a positioned parameted in a statement, given a ColumnMap object to infer the binding type.
Warning: duplicates logic from DefaultPlatform::getColumnBindingPHP().
Any code modification here must be ported there.
at line 596
public PDOStatement
doExplainPlan(PropelPDO $con, ModelCriteria|string $query)
Do Explain Plan for query object or query string