CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (GitHub)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • Slack
    • Paid Support
CakePHP

C CakePHP 2.9 API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 2.9
      • 4.2
      • 4.1
      • 4.0
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Packages

  • Cake
    • Cache
      • Engine
    • Configure
    • Console
      • Command
        • Task
    • Controller
      • Component
        • Acl
        • Auth
    • Core
    • Error
    • Event
    • I18n
    • Log
      • Engine
    • Model
      • Behavior
      • Datasource
        • Database
        • Session
      • Validator
    • Network
      • Email
      • Http
    • Routing
      • Filter
      • Route
    • TestSuite
      • Coverage
      • Fixture
      • Reporter
    • Utility
    • View
      • Helper
  • None

Classes

  • Mysql
  • Postgres
  • Sqlite
  • Sqlserver

Class Mysql

MySQL DBO driver object

Provides connection and SQL generation for MySQL RDMS

CakeObject
Extended by DataSource
Extended by DboSource
Extended by Mysql
Package: Cake\Model\Datasource\Database
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Model/Datasource/Database/Mysql.php

Properties summary

  • $_baseConfig protected
    array
    Base configuration settings for MySQL driver
  • $_charsets protected
    array
    Mapping of collation names to character set names
  • $_connection protected
    PDO
    Reference to the PDO object connection
  • $_useAlias protected
    boolean
    use alias for update and delete. Set to true if version >= 4.1
  • $columns public
    array
    MySQL column definition
  • $description public
    string
    Datasource description
  • $endQuote public
    string
    End quote
  • $fieldParameters public
    array
    List of engine specific additional field parameters used on table creating
  • $startQuote public
    string
    Start quote
  • $tableParameters public
    array
    List of table engine specific parameters used on table creating

Inherited Properties

  • _methodCacheChange, _queriesCnt, _queriesLog, _queriesLogMax, _queriesTime, _queryCache, _queryDefaults, _result, _sqlBoolOps, _sqlOps, _transactionNesting, affected, alias, cacheMethods, configKeyName, fullDebug, index, methodCache, numRows, took, useNestedTransactions, virtualFieldSeparator _descriptions, _sources, _transactionStarted, cacheSources, config, connected

Method Summary

  • _alterIndexes() protected
    Generate MySQL index alteration statements for a table.
  • _alterTableParameters() protected
    Generate MySQL table parameter alteration statements for a table.
  • _buildIndexSubPart() protected
    Format length for text indexes
  • _deleteNeedsComplexConditions() protected
    Checks whether complex conditions are needed for a delete with the given conditions.
  • _dropTable() protected
    Generate a "drop table" statement for the given table
  • _unsigned() protected
    Check if column type is unsigned
  • alterSchema() public
    Generate a MySQL Alter Table syntax for the given Schema comparison
  • buildIndex() public
    Format indexes for create table
  • column() public
    Converts database-layer column types to basic types
  • connect() public
    Connects to the database using options in the given configuration array.
  • delete() public
    Generates and executes an SQL DELETE statement for given id/conditions on given model.
  • describe() public
    Returns an array of the fields in given table name.
  • enabled() public
    Check whether the MySQL extension is installed/loaded
  • fetchResult() public
    Fetches the next row from the current result set
  • getCharsetName() public
    Query charset by collation
  • getEncoding() public
    Gets the database encoding
  • getSchemaName() public
    Gets the schema name
  • index() public
    Returns an array of the indexes in given datasource name.
  • insertMulti() public

    Inserts multiple values into a table. Uses a single query in order to insert multiple rows.

  • listDetailedSources() public
    Returns a detailed array of sources (tables) in the database.
  • listSources() public
    Returns an array of sources (tables) in the database.
  • nestedTransactionSupported() public
    Check if the server support nested transactions
  • resultSet() public
    Builds a map of the columns contained in a result
  • setEncoding() public
    Sets the database encoding
  • update() public
    Generates and executes an SQL UPDATE statement for given model, fields, and values.
  • value() public
    Returns a quoted and escaped string of $data for use in an SQL statement.

Method Detail

_alterIndexes() protected ¶

_alterIndexes( string $table , array $indexes )

Generate MySQL index alteration statements for a table.

Parameters
string $table
Table to alter indexes for
array $indexes
Indexes to add and drop
Returns
array
Index alteration statements

_alterTableParameters() protected ¶

_alterTableParameters( string $table , array $parameters )

Generate MySQL table parameter alteration statements for a table.

Parameters
string $table
Table to alter parameters for.
array $parameters
Parameters to add & drop.
Returns
array
Array of table property alteration statements.

_buildIndexSubPart() protected ¶

_buildIndexSubPart( array $lengths , string $column )

Format length for text indexes

Parameters
array $lengths
An array of lengths for a single index
string $column
The column for which to generate the index length
Returns
string
Formatted length part of an index field

_deleteNeedsComplexConditions() protected ¶

_deleteNeedsComplexConditions( Model $model , mixed $conditions )

Checks whether complex conditions are needed for a delete with the given conditions.

Parameters
Model $model
The model to delete from.
mixed $conditions
The conditions to use.
Returns
boolean
Whether or not complex conditions are needed

_dropTable() protected ¶

_dropTable( type $table )

Generate a "drop table" statement for the given table

Parameters
type $table
Name of the table to drop
Returns
string
Drop table SQL statement
Overrides
DboSource::_dropTable()

_unsigned() protected ¶

_unsigned( string $real )

Check if column type is unsigned

Parameters
string $real
Real database-layer column type (i.e. "varchar(255)")
Returns
boolean
True if column is unsigned, false otherwise

alterSchema() public ¶

alterSchema( array $compare , string $table = null )

Generate a MySQL Alter Table syntax for the given Schema comparison

Parameters
array $compare
Result of a CakeSchema::compare()
string $table optional null
The table name.
Returns
array
Array of alter statements to make.
Overrides
DboSource::alterSchema()

buildIndex() public ¶

buildIndex( array $indexes , string $table = null )

Format indexes for create table

Parameters
array $indexes
An array of indexes to generate SQL from
string $table optional null
Optional table name, not used
Returns
array
An array of SQL statements for indexes
See
DboSource::buildIndex()
Overrides
DboSource::buildIndex()

column() public ¶

column( string $real )

Converts database-layer column types to basic types

Parameters
string $real
Real database-layer column type (i.e. "varchar(255)")
Returns
string
Abstract column type (i.e. "string")
Overrides
DataSource::column()

connect() public ¶

connect( )

Connects to the database using options in the given configuration array.

MySQL supports a few additional options that other drivers do not:

  • unix_socket Set to the path of the MySQL sock file. Can be used in place of host + port.
  • ssl_key SSL key file for connecting via SSL. Must be combined with ssl_cert.
  • ssl_cert The SSL certificate to use when connecting via SSL. Must be combined with ssl_key.
  • ssl_ca The certificate authority for SSL connections.
Returns
boolean
True if the database could be connected, else false
Throws
MissingConnectionException

delete() public ¶

delete( Model $model , mixed $conditions = null )

Generates and executes an SQL DELETE statement for given id/conditions on given model.

Parameters
Model $model
The model to delete from.
mixed $conditions optional null
The conditions to use.
Returns
boolean
Success
Overrides
DboSource::delete()

describe() public ¶

describe( Model|string $model )

Returns an array of the fields in given table name.

Parameters
Model|string $model
Name of database table to inspect or model instance
Returns
array
Fields in table. Keys are name and type
Throws
CakeException
Overrides
DataSource::describe()

enabled() public ¶

enabled( )

Check whether the MySQL extension is installed/loaded

Returns
boolean
Overrides
DataSource::enabled()

fetchResult() public ¶

fetchResult( )

Fetches the next row from the current result set

Returns
mixed
array with results fetched and mapped to column names or false if there is no results left to fetch
Overrides
DboSource::fetchResult()

getCharsetName() public ¶

getCharsetName( string $name )

Query charset by collation

Parameters
string $name
Collation name
Returns
string
Character set name

getEncoding() public ¶

getEncoding( )

Gets the database encoding

Returns
string
The database encoding

getSchemaName() public ¶

getSchemaName( )

Gets the schema name

Returns
string
The schema name
Overrides
DataSource::getSchemaName()

index() public ¶

index( string $model )

Returns an array of the indexes in given datasource name.

Parameters
string $model
Name of model to inspect
Returns
array
Fields in table. Keys are column and unique
Overrides
DboSource::index()

insertMulti() public ¶

insertMulti( string $table , array $fields , array $values )

Inserts multiple values into a table. Uses a single query in order to insert multiple rows.

Parameters
string $table
The table being inserted into.
array $fields
The array of field/column names being inserted.
array $values

The array of values to insert. The values should be an array of rows. Each row should have values keyed by the column name. Each row must have the values in the same order as $fields.

Returns
boolean
Overrides
DboSource::insertMulti()

listDetailedSources() public ¶

listDetailedSources( string $name = null )

Returns a detailed array of sources (tables) in the database.

Parameters
string $name optional null
Table name to get parameters
Returns
array
Array of table names in the database

listSources() public ¶

listSources( mixed $data = null )

Returns an array of sources (tables) in the database.

Parameters
mixed $data optional null
List of tables.
Returns
array
Array of table names in the database
Overrides
DataSource::listSources()

nestedTransactionSupported() public ¶

nestedTransactionSupported( )

Check if the server support nested transactions

Returns
boolean
Overrides
DboSource::nestedTransactionSupported()

resultSet() public ¶

resultSet( PDOStatement $results )

Builds a map of the columns contained in a result

Parameters
PDOStatement $results
The results to format.

setEncoding() public ¶

setEncoding( string $enc )

Sets the database encoding

Parameters
string $enc
Database encoding
Returns
boolean

update() public ¶

update( Model $model , array $fields = array() , array $values = null , mixed $conditions = null )

Generates and executes an SQL UPDATE statement for given model, fields, and values.

Parameters
Model $model
The model to update.
array $fields optional array()
The fields to update.
array $values optional null
The values to set.
mixed $conditions optional null
The conditions to use.
Returns
array
Overrides
DboSource::update()

value() public ¶

value( string $data , string $column = null , boolean $null = true )

Returns a quoted and escaped string of $data for use in an SQL statement.

Parameters
string $data
String to be prepared for use in an SQL statement
string $column optional null
The column datatype into which this data will be inserted.
boolean $null optional true
Column allows NULL values
Returns
string
Quoted and escaped data
Overrides
DboSource::value()

Methods inherited from DboSource

__construct() public ¶

__construct( array $config = null , boolean $autoConnect = true )

Constructor

Parameters
array $config optional null
Array of configuration information for the Datasource.
boolean $autoConnect optional true
Whether or not the datasource should automatically connect.
Throws
MissingConnectionException
when a connection cannot be made.
Overrides
DataSource::__construct()

__destruct() public ¶

__destruct( )

Used for storing in cache the results of the in-memory methodCache

Overrides
DataSource::__destruct()

_beginNested() protected ¶

_beginNested( )

Begin a nested transaction

Returns
boolean

_buildFieldParameters() protected ¶

_buildFieldParameters( string $columnString , array $columnData , string $position )

Build the field parameters, in a position

Parameters
string $columnString
The partially built column string
array $columnData
The array of column data.
string $position
The position type to use. 'beforeDefault' or 'afterDefault' are common
Returns
string
a built column with the field parameters added.

_commitNested() protected ¶

_commitNested( )

Commit a nested transaction

Returns
boolean

_constructVirtualFields() protected ¶

_constructVirtualFields( Model $Model , string $alias , array $fields )

Converts model virtual fields into sql expressions to be fetched later

Parameters
Model $Model
The model to get virtual fields for.
string $alias
Alias table name
array $fields
virtual fields to be used on query
Returns
array

_execute() protected ¶

_execute( string $sql , array $params = array() , array $prepareOptions = array() )

Executes given SQL statement.

Parameters
string $sql
SQL statement
array $params optional array()
list of params to be bound to query
array $prepareOptions optional array()
Options to be used in the prepare statement
Returns
mixed

PDOStatement if query executes with no problem, true as the result of a successful, false on error query returning no rows, such as a CREATE statement, false otherwise


Throws
PDOException

_fetchHasAndBelongsToMany() protected ¶

_fetchHasAndBelongsToMany( Model $Model , string $query , array $ids , string $association )

Fetch 'hasAndBelongsToMany' associations.

Parameters
Model $Model
Primary model object.
string $query
Association query.
array $ids
Array of IDs of associated records.
string $association
Association name.
Returns
array
Association results.

_fetchHasMany() protected ¶

_fetchHasMany( Model $Model , string $query , array $ids )

Fetch 'hasMany' associations.

Parameters
Model $Model
Primary model object.
string $query
Association query template.
array $ids
Array of IDs of associated records.
Returns
array
Association results.

_filterResults() protected ¶

_filterResults( array $resultSet , Model $Model , array $filtered = array() )

Passes association results through afterFind filters of the corresponding model.

The primary model is always excluded, because the filtering is later done by Model::_filterResults().

Parameters
array $resultSet
$resultSet Reference of resultset to be filtered.
Model $Model
Instance of model to operate against.
array $filtered optional array()
List of classes already filtered, to be skipped.
Returns
array
Array of results that have been filtered through $Model->afterFind.

_filterResultsInclusive() protected ¶

_filterResultsInclusive( array $resultSet , Model $Model , array $toBeFiltered = array() )

Passes association results through afterFind filters of the corresponding model.

Similar to DboSource::_filterResults(), but this filters only specified models. The primary model can not be specified, because this call DboSource::_filterResults() internally.

Parameters
array $resultSet
$resultSet Reference of resultset to be filtered.
Model $Model
Instance of model to operate against.
array $toBeFiltered optional array()
List of classes to be filtered.
Returns
array
Array of results that have been filtered through $Model->afterFind.

_getJoins() protected ¶

_getJoins( Model $Model )

Returns an array of SQL JOIN conditions from a model's associations.

Parameters
Model $Model
The model to get joins for.2
Returns
array

_matchRecords() protected ¶

_matchRecords( Model $Model , mixed $conditions = null )

Gets a list of record IDs for the given conditions. Used for multi-record updates and deletes in databases that do not support aliases in UPDATE/DELETE queries.

Parameters
Model $Model
The model to find matching records for.
mixed $conditions optional null
The conditions to match against.
Returns
array
List of record IDs

_mergeAssociation() protected ¶

_mergeAssociation( array $data , array $merge , string $association , string $type , boolean $selfJoin = false )

Merge association of merge into data

Parameters
array $data
$data The data to merge.
array $merge
$merge The data to merge.
string $association
The association name to merge.
string $type
The type of association
boolean $selfJoin optional false
Whether or not this is a self join.

_mergeConditions() protected ¶

_mergeConditions( mixed $query , mixed $assoc )

Merges a mixed set of string/array conditions.

Parameters
mixed $query
The query to merge conditions for.
mixed $assoc
The association names.
Returns
array

_mergeHasMany() protected ¶

_mergeHasMany( array $resultSet , array $assocResultSet , string $association , Model $Model )

Merge the results of 'hasMany' associations.

Note: this function also deals with the formatting of the data.

Parameters
array $resultSet
$resultSet Data to merge into.
array $assocResultSet
Data to merge.
string $association
Name of Model being merged.
Model $Model
Model being merged onto.

_parseKey() protected ¶

_parseKey( string $key , mixed $value , Model $Model = null )

Extracts a Model.field identifier and an SQL condition operator from a string, formats and inserts values, and composes them into an SQL snippet.

Parameters
string $key
An SQL key snippet containing a field and optional SQL operator
mixed $value
The value(s) to be inserted in the string
Model $Model optional null
Model object initiating the query
Returns
string

_prepareUpdateFields() protected ¶

_prepareUpdateFields( Model $Model , array $fields , boolean $quoteValues = true , boolean $alias = false )

Quotes and prepares fields and values for an SQL UPDATE statement

Parameters
Model $Model
The model to prepare fields for.
array $fields
The fields to update.
boolean $quoteValues optional true
If values should be quoted, or treated as SQL snippets
boolean $alias optional false
Include the model alias in the field name
Returns
array
Fields and values, quoted and prepared

_quoteFields() protected ¶

_quoteFields( string $conditions )

Quotes Model.fields

Parameters
string $conditions
The conditions to quote.
Returns
string
or false if no match

_quoteMatchedField() protected ¶

_quoteMatchedField( string $match )

Auxiliary function to quote matches Model.fields from a preg_replace_callback call

Parameters
string $match
matched string
Returns
string
quoted string

_rollbackNested() protected ¶

_rollbackNested( )

Rollback a nested transaction

Returns
boolean

_scrubQueryData() protected ¶

_scrubQueryData( array $data )

Private helper method to remove query metadata in given data array.

Parameters
array $data
The data to scrub.
Returns
array

_writeQueryCache() protected ¶

_writeQueryCache( string $sql , mixed $data , array $params = array() )

Writes a new key for the in memory sql query cache

Parameters
string $sql
SQL query
mixed $data
result of $sql query
array $params optional array()
query params bound as values

begin() public ¶

begin( )

Begin a transaction

Returns
boolean

True on success, false on fail (i.e. if the database/model does not support transactions, or a transaction has not started).


Overrides
DataSource::begin()

boolean() public ¶

boolean( mixed $data , boolean $quote = false )

Translates between PHP boolean values and Database (faked) boolean values

Parameters
mixed $data
Value to be translated
boolean $quote optional false
Whether or not the field should be cast to a string.
Returns
string|boolean
Converted boolean value

buildAssociationQuery() public ¶

buildAssociationQuery( Model $Model , array $queryData )

Builds an SQL statement.

This is merely a convenient wrapper to DboSource::buildStatement().

Parameters
Model $Model
The model to build an association query for.
array $queryData
An array of queryData information containing keys similar to Model::find().
Returns
string
String containing an SQL statement.
See
DboSource::buildStatement()

buildColumn() public ¶

buildColumn( array $column )

Generate a database-native column schema string

Parameters
array $column

An array structured like the following: array('name' => 'value', 'type' => 'value'[, options]), where options can be 'default', 'length', or 'key'.

Returns
string

buildJoinStatement() public ¶

buildJoinStatement( array $join )

Builds and generates a JOIN condition from an array. Handles final clean-up before conversion.

Parameters
array $join
An array defining a JOIN condition in a query.
Returns
string
An SQL JOIN condition to be used in a query.
See
DboSource::renderJoinStatement()
DboSource::buildStatement()

buildStatement() public ¶

buildStatement( array $query , Model $Model )

Builds and generates an SQL statement from an array. Handles final clean-up before conversion.

Parameters
array $query
An array defining an SQL query.
Model $Model
The model object which initiated the query.
Returns
string
An executable SQL statement.
See
DboSource::renderStatement()

buildTableParameters() public ¶

buildTableParameters( array $parameters , string $table = null )

Format parameters for create table

Parameters
array $parameters
The parameters to create SQL for.
string $table optional null
The table name.
Returns
array

cacheMethod() public ¶

cacheMethod( string $method , string $key , mixed $value = null )

Cache a value into the methodCaches. Will respect the value of DboSource::$cacheMethods. Will retrieve a value from the cache if $value is null.

If caching is disabled and a write is attempted, the $value will be returned. A read will either return the value or null.

Parameters
string $method
Name of the method being cached.
string $key
The key name for the cache operation.
mixed $value optional null
The value to cache into memory.
Returns
mixed
Either null on failure, or the value if its set.

cacheMethodFilter() public ¶

cacheMethodFilter( string $method , string $key , mixed $value )

Filters to apply to the results of name and fields. When the filter for a given method does not return true then the result is not added to the memory cache.

Some examples:

// For method fields, do not cache values that contain floats
if ($method === 'fields') {
    $hasFloat = preg_grep('/(\d+)?\.\d+/', $value);

    return count($hasFloat) === 0;
}

return true;
// For method name, do not cache values that have the name created
if ($method === 'name') {
    return preg_match('/^`created`$/', $value) !== 1;
}

return true;
// For method name, do not cache values that have the key 472551d38e1f8bbc78d7dfd28106166f
if ($key === '472551d38e1f8bbc78d7dfd28106166f') {
    return false;
}

return true;
Parameters
string $method
Name of the method being cached.
string $key
The key name for the cache operation.
mixed $value
The value to cache into memory.
Returns
boolean
Whether or not to cache

cacheMethodHasher() public ¶

cacheMethodHasher( string $value )

Hashes a given value.

Method caching uses md5 (by default) to construct cache keys. If you have problems with collisions, try a different hashing algorithm or set DboSource::$cacheMethods to false.

Parameters
string $value
Value to hash
Returns
string
Hashed value
See
http://php.net/manual/en/function.hash-algos.php
http://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed

calculate() public ¶

calculate( Model $Model , string $func , array $params = array() )

Returns an SQL calculation, i.e. COUNT() or MAX()

Parameters
Model $Model
The model to get a calculated field for.
string $func
Lowercase name of SQL function, i.e. 'count' or 'max'
array $params optional array()
Function parameters (any values must be quoted manually)
Returns
string
An SQL calculation function

close() public ¶

close( )

Disconnects database, kills the connection and says the connection is closed.

Overrides
DataSource::close()

commit() public ¶

commit( )

Commit a transaction

Returns
boolean

True on success, false on fail (i.e. if the database/model does not support transactions, or a transaction has not started).


Overrides
DataSource::commit()

conditionKeysToString() public ¶

conditionKeysToString( array $conditions , boolean $quoteValues = true , Model $Model = null )

Creates a WHERE clause by parsing given conditions array. Used by DboSource::conditions().

Parameters
array $conditions
Array or string of conditions
boolean $quoteValues optional true
If true, values should be quoted
Model $Model optional null
A reference to the Model instance making the query
Returns
string
SQL fragment

conditions() public ¶

conditions( mixed $conditions , boolean $quoteValues = true , boolean $where = true , Model $Model = null )

Creates a WHERE clause by parsing given conditions data. If an array or string conditions are provided those conditions will be parsed and quoted. If a boolean is given it will be integer cast as condition. Null will return 1 = 1.

Results of this method are stored in a memory cache. This improves performance, but because the method uses a hashing algorithm it can have collisions. Setting DboSource::$cacheMethods to false will disable the memory cache.

Parameters
mixed $conditions
Array or string of conditions, or any value.
boolean $quoteValues optional true
If true, values should be quoted
boolean $where optional true
If true, "WHERE " will be prepended to the return value
Model $Model optional null
A reference to the Model instance making the query
Returns
string
SQL fragment

create() public ¶

create( Model $Model , array $fields = null , array $values = null )

The "C" in CRUD

Creates new records in the database.

Parameters
Model $Model
Model object that the record is for.
array $fields optional null

An array of field names to insert. If null, $Model->data will be used to generate field names.

array $values optional null

An array of values with keys matching the fields. If null, $Model->data will be used to generate values.

Returns
boolean
Success
Overrides
DataSource::create()

createSchema() public ¶

createSchema( CakeSchema $schema , string $tableName = null )

Generate a database-native schema for the given Schema object

Parameters
CakeSchema $schema
An instance of a subclass of CakeSchema
string $tableName optional null

Optional. If specified only the table name given will be generated. Otherwise, all tables defined in the schema are generated.

Returns
string

defaultConditions() public ¶

defaultConditions( Model $Model , string|array|boolean $conditions , boolean $useAlias = true )

Creates a default set of conditions from the model if $conditions is null/empty. If conditions are supplied then they will be returned. If a model doesn't exist and no conditions were provided either null or false will be returned based on what was input.

Parameters
Model $Model
The model to get conditions for.
string|array|boolean $conditions

Array of conditions, conditions string, null or false. If an array of conditions, or string conditions those conditions will be returned. With other values the model's existence will be checked. If the model doesn't exist a null or false will be returned depending on the input value.

boolean $useAlias optional true
Use model aliases rather than table names when generating conditions
Returns
mixed
Either null, false, $conditions or an array of default conditions to use.
See
DboSource::update()
DboSource::conditions()

disconnect() public ¶

disconnect( )

Disconnects from database.

Returns
boolean
Always true

dropSchema() public ¶

dropSchema( CakeSchema $schema , string $table = null )

Generate a "drop table" statement for the given Schema object

Parameters
CakeSchema $schema
An instance of a subclass of CakeSchema
string $table optional null

Optional. If specified only the table name given will be generated. Otherwise, all tables defined in the schema are generated.

Returns
string

execute() public ¶

execute( string $sql , array $options = array() , array $params = array() )

Queries the database with given SQL statement, and obtains some metadata about the result (rows affected, timing, any errors, number of rows in resultset). The query is also logged. If Configure::read('debug') is set, the log is shown all the time, else it is only shown on errors.

Options

  • log - Whether or not the query should be logged to the memory log.
Parameters
string $sql
SQL statement
array $options optional array()
The options for executing the query.
array $params optional array()
values to be bound to the query.
Returns
mixed
Resource or object representing the result set, or false on failure

expression() public ¶

expression( string $expression )

Returns an object to represent a database expression in a query. Expression objects are not sanitized or escaped.

Parameters
string $expression
An arbitrary SQL expression to be inserted into a query.
Returns
stdClass
An object representing a database expression to be used in a query

fetchAll() public ¶

fetchAll( string $sql , array|boolean $params = array() , array $options = array() )

Returns an array of all result rows for a given SQL query.

Returns false if no rows matched.

Options

  • cache - Returns the cached version of the query, if exists and stores the result in cache. This is a non-persistent cache, and only lasts for a single request. This option defaults to true. If you are directly calling this method, you can disable caching by setting $options to false
Parameters
string $sql
SQL statement
array|boolean $params optional array()

Either parameters to be bound as values for the SQL statement, or a boolean to control query caching.

array $options optional array()
additional options for the query.
Returns
boolean|array
Array of resultset rows, or false if no rows matched

fetchAssociated() public ¶

fetchAssociated( Model $Model , string $query , array $ids )

Fetch 'hasMany' associations.

This is just a proxy to maintain BC.

Parameters
Model $Model
Primary model object.
string $query
Association query template.
array $ids
Array of IDs of associated records.
Returns
array
Association results.
See
DboSource::_fetchHasMany()

fetchRow() public ¶

fetchRow( string $sql = null )

Returns a row from current resultset as an array

Parameters
string $sql optional null
Some SQL to be executed.
Returns
array
The fetched row as an array

fetchVirtualField() public ¶

fetchVirtualField( array $result )

Modifies $result array to place virtual fields in model entry where they belongs to

Parameters
array $result
$result Reference to the fetched row

field() public ¶

field( string $name , string $sql )

Returns a single field of the first of query results for a given SQL query, or false if empty.

Parameters
string $name
The name of the field to get.
string $sql
The SQL query.
Returns
mixed
Value of field read, or false if not found.

fields() public ¶

fields( Model $Model , string $alias = null , mixed $fields = array() , boolean $quote = true )

Generates the fields list of an SQL query.

Parameters
Model $Model
The model to get fields for.
string $alias optional null
Alias table name
mixed $fields optional array()
The provided list of fields.
boolean $quote optional true
If false, returns fields array unquoted
Returns
array

flushMethodCache() public ¶

flushMethodCache( )

Empties the method caches. These caches are used by DboSource::name() and DboSource::conditions()

flushQueryCache() public ¶

flushQueryCache( )

Empties the query caches.

fullTableName() public ¶

fullTableName( Model|string $model , boolean $quote = true , boolean $schema = true )

Gets full table name including prefix

Parameters
Model|string $model
Either a Model object or a string table name.
boolean $quote optional true
Whether you want the table name quoted.
boolean $schema optional true
Whether you want the schema name included.
Returns
string
Full quoted table name

generateAssociationQuery() public ¶

generateAssociationQuery( Model $Model , Model|null $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external )

Generates a query or part of a query from a single model or two associated models.

Builds a string containing an SQL statement template.

Parameters
Model $Model
Primary Model object.
Model|null $LinkModel
Linked model object.
string $type
Association type, one of the model association types ie. hasMany.
string $association
Association name.
array $assocData
Association data.
array $queryData
$queryData An array of queryData information containing keys similar to Model::find().
boolean $external
Whether or not the association query is on an external datasource.
Returns
mixed

String representing a query. True, when $external is false and association $type is 'hasOne' or 'belongsTo'.


getConnection() public ¶

getConnection( )

Get the underlying connection object.

Returns
PDO

getConstraint() public ¶

getConstraint( string $type , Model $Model , Model $LinkModel , string $association , array $assocData , string $association2 = null )

Returns a conditions array for the constraint between two models.

Parameters
string $type
Association type.
Model $Model
Primary Model object.
Model $LinkModel
Linked model object.
string $association
Association name.
array $assocData
Association data.
string $association2 optional null
HABTM association name.
Returns
array
Conditions array defining the constraint between $Model and $LinkModel.

getLog() public ¶

getLog( boolean $sorted = false , boolean $clear = true )

Get the query log as an array.

Parameters
boolean $sorted optional false
Get the queries sorted by time taken, defaults to false.
boolean $clear optional true
If True the existing log will cleared.
Returns
array
Array of queries run as an array

getQueryCache() public ¶

getQueryCache( string $sql , array $params = array() )

Returns the result for a sql query if it is already cached

Parameters
string $sql
SQL query
array $params optional array()
query params bound as values
Returns
mixed
results for query if it is cached, false otherwise

getVersion() public ¶

getVersion( )

Gets the version string of the database server

Returns
string
The database version

group() public ¶

group( string|array $fields , Model $Model = null )

Create a GROUP BY SQL clause.

Parameters
string|array $fields
Group By fields
Model $Model optional null
The model to get group by fields for.
Returns
string
Group By clause or null.

hasAny() public ¶

hasAny( Model $Model , string $sql )

Checks if the specified table contains any record matching specified SQL

Parameters
Model $Model
Model to search
string $sql
SQL WHERE clause (condition only, not the "WHERE" part)
Returns
boolean
True if the table has a matching record, else false

hasResult() public ¶

hasResult( )

Checks if the result is valid

Returns
boolean
True if the result is valid else false

identifier() public ¶

identifier( string $identifier )

Returns an object to represent a database identifier in a query. Expression objects are not sanitized or escaped.

Parameters
string $identifier
A SQL expression to be used as an identifier
Returns
stdClass
An object representing a database identifier to be used in a query

introspectType() public ¶

introspectType( string $value )

Guesses the data type of an array

Parameters
string $value
The value to introspect for type data.
Returns
string

isConnected() public ¶

isConnected( )

Checks if the source is connected to the database.

Returns
boolean
True if the database is connected, else false

lastAffected() public ¶

lastAffected( mixed $source = null )

Returns number of affected rows in previous database operation. If no previous operation exists, this returns false.

Parameters
mixed $source optional null
The source to check.
Returns
integer
Number of affected rows
Overrides
DataSource::lastAffected()

lastError() public ¶

lastError( PDOStatement $query = null )

Returns a formatted error message from previous database operation.

Parameters
PDOStatement $query optional null
the query to extract the error from if any
Returns
string
Error message with error number

lastInsertId() public ¶

lastInsertId( mixed $source = null )

Returns the ID generated from the previous INSERT operation.

Parameters
mixed $source optional null
The source to get an id for.
Returns
mixed
Overrides
DataSource::lastInsertId()

lastNumRows() public ¶

lastNumRows( mixed $source = null )

Returns number of rows in previous resultset. If no previous resultset exists, this returns false.

Parameters
mixed $source optional null
Not used
Returns
integer
Number of rows in resultset
Overrides
DataSource::lastNumRows()

length() public ¶

length( string $real )

Gets the length of a database-native column description, or null if no length

Parameters
string $real
Real database-layer column type (i.e. "varchar(255)")
Returns
mixed
An integer or string representing the length of the column, or null for unknown length.

limit() public ¶

limit( integer $limit , integer $offset = null )

Returns a limit statement in the correct format for the particular database.

Parameters
integer $limit
Limit of results returned
integer $offset optional null
Offset from which to start results
Returns
string
SQL limit/offset statement

logQuery() public ¶

logQuery( string $sql , array $params = array() )

Log given SQL query.

Parameters
string $sql
SQL statement
array $params optional array()
Values binded to the query (prepared statements)

name() public ¶

name( mixed $data )

Returns a quoted name of $data for use in an SQL statement. Strips fields out of SQL functions before quoting.

Results of this method are stored in a memory cache. This improves performance, but because the method uses a hashing algorithm it can have collisions. Setting DboSource::$cacheMethods to false will disable the memory cache.

Parameters
mixed $data

Either a string with a column to quote. An array of columns to quote or an object from DboSource::expression() or DboSource::identifier()

Returns
string
SQL field

order() public ¶

order( array|string $keys , string $direction = 'ASC' , Model $Model = null )

Returns an ORDER BY clause as a string.

Parameters
array|string $keys
Field reference, as a key (i.e. Post.title)
string $direction optional 'ASC'
Direction (ASC or DESC)
Model $Model optional null
Model reference (used to look for virtual field)
Returns
string
ORDER BY clause

prepareFields() public ¶

prepareFields( Model $Model , array $queryData )

Prepares fields required by an SQL statement.

When no fields are set, all the $Model fields are returned.

Parameters
Model $Model
The model to prepare.
array $queryData
An array of queryData information containing keys similar to Model::find().
Returns
array
Array containing SQL fields.

query() public ¶

query( )

DataSource Query abstraction

Returns
resource
Result resource identifier.

queryAssociation() public ¶

queryAssociation( Model $Model , Model $LinkModel , string $type , string $association , array $assocData , array $queryData , boolean $external , array $resultSet , integer $recursive , array $stack )

Queries associations.

Used to fetch results on recursive models.

  • 'hasMany' associations with no limit set: Fetch, filter and merge is done recursively for every level.

  • 'hasAndBelongsToMany' associations: Fetch and filter is done unaffected by the (recursive) level set.

Parameters
Model $Model
Primary Model object.
Model $LinkModel
Linked model object.
string $type
Association type, one of the model association types ie. hasMany.
string $association
Association name.
array $assocData
Association data.
array $queryData
$queryData An array of queryData information containing keys similar to Model::find().
boolean $external
Whether or not the association query is on an external datasource.
array $resultSet
$resultSet Existing results.
integer $recursive
Number of levels of association.
array $stack
A list with joined models.
Returns
mixed
Throws
CakeException
when results cannot be created.

rawQuery() public ¶

rawQuery( string $sql , array $params = array() )

Executes given SQL statement.

Parameters
string $sql
SQL statement
array $params optional array()
Additional options for the query.
Returns
mixed
Resource or object representing the result set, or false on failure

read() public ¶

read( Model $Model , array $queryData = array() , integer $recursive = null )

The "R" in CRUD

Reads record(s) from the database.

Parameters
Model $Model
A Model object that the query is for.
array $queryData optional array()
An array of queryData information containing keys similar to Model::find().
integer $recursive optional null
Number of levels of association
Returns
mixed
boolean false on error/failure. An array of results on success.
Overrides
DataSource::read()

readTableParameters() public ¶

readTableParameters( string $name )

Read additional table parameters

Parameters
string $name
The table name to read.
Returns
array

reconnect() public ¶

reconnect( array $config = array() )

Reconnects to database server with optional new settings

Parameters
array $config optional array()
An array defining the new configuration settings
Returns
boolean
True on success, false on failure

renderJoinStatement() public ¶

renderJoinStatement( array $data )

Renders a final SQL JOIN statement

Parameters
array $data
The data to generate a join statement for.
Returns
string

renderStatement() public ¶

renderStatement( string $type , array $data )

Renders a final SQL statement by putting together the component parts in the correct order

Parameters
string $type
type of query being run. e.g select, create, update, delete, schema, alter.
array $data
Array of data to insert into the query.
Returns
string|null
Rendered SQL expression to be run, otherwise null.

resetSequence() public ¶

resetSequence( string $table , string $column )

Reset a sequence based on the MAX() value of $column. Useful for resetting sequences after using insertMulti().

This method should be implemented by datasources that require sequences to be used.

Parameters
string $table
The name of the table to update.
string $column
The column to use when resetting the sequence value.
Returns
boolean
Success.

resolveKey() public ¶

resolveKey( Model $Model , string $key , string $assoc = null )

Returns a key formatted like a string Model.fieldname(i.e. Post.title, or Country.name)

Parameters
Model $Model
The model to get a key for.
string $key
The key field.
string $assoc optional null
The association name.
Returns
string
Overrides
DataSource::resolveKey()

rollback() public ¶

rollback( )

Rollback a transaction

Returns
boolean

True on success, false on fail (i.e. if the database/model does not support transactions, or a transaction has not started).


Overrides
DataSource::rollback()

showLog() public ¶

showLog( boolean $sorted = false )

Outputs the contents of the queries log. If in a non-CLI environment the sql_log element will be rendered and output. If in a CLI environment, a plain text log is generated.

Parameters
boolean $sorted optional false
Get the queries sorted by time taken, defaults to false.

truncate() public ¶

truncate( Model|string $table )

Deletes all the records in a table and resets the count of the auto-incrementing primary key, where applicable.

Parameters
Model|string $table
A string or model class representing the table to be truncated
Returns
boolean
SQL TRUNCATE TABLE statement, false if not applicable.

Methods inherited from DataSource

_cacheDescription() protected ¶

_cacheDescription( string $object , mixed $data = null )

Cache the DataSource description

Parameters
string $object
The name of the object (model) to cache
mixed $data optional null
The description of the model, usually a string or array
Returns
mixed

insertQueryData() public ¶

insertQueryData( string $query , array $data , string $association , Model $Model , array $stack )

Replaces {$__cakeID__$} and {$__cakeForeignKey__$} placeholders in query data.

Parameters
string $query
Query string needing replacements done.
array $data
Array of data with values that will be inserted in placeholders.
string $association
Name of association model being replaced.
Model $Model
Model instance.
array $stack
The context stack.
Returns
mixed
String of query data with placeholders replaced, or false on failure.

setConfig() public ¶

setConfig( array $config = array() )

Sets the configuration for the DataSource. Merges the $config information with the _baseConfig and the existing $config property.

Parameters
array $config optional array()
The configuration array

Methods inherited from CakeObject

_mergeVars() protected ¶

_mergeVars( array $properties , string $class , boolean $normalize = true )

Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'

This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.

Parameters
array $properties
The name of the properties to merge.
string $class
The class to merge the property with.
boolean $normalize optional true
Set to true to run the properties through Hash::normalize() before merging.

_set() protected ¶

_set( array $properties = array() )

Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.

Parameters
array $properties optional array()
An associative array containing properties and corresponding values.

_stop() protected ¶

_stop( integer|string $status = 0 )

Stop execution of the current script. Wraps exit() making testing easier.

Parameters
integer|string $status optional 0
see http://php.net/exit for values

dispatchMethod() public ¶

dispatchMethod( string $method , array $params = array() )

Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array

Parameters
string $method
Name of the method to call
array $params optional array()
Parameter list to use when calling $method
Returns
mixed
Returns the result of the method call

log() public ¶

log( string $msg , integer $type = LOG_ERR , null|string|array $scope = null )

Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.

Parameters
string $msg
Log message
integer $type optional LOG_ERR
Error type constant. Defined in app/Config/core.php.
null|string|array $scope optional null

The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.

Returns
boolean
Success of log write

requestAction() public ¶

requestAction( string|array $url , array $extra = array() )

Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.

Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()

Passing POST and GET data

POST and GET data can be simulated in requestAction. Use $extra['url'] for GET data. The $extra['data'] parameter allows POST data simulation.

Parameters
string|array $url

String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.

array $extra optional array()

if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.

Returns
mixed

Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.


toString() public ¶

toString( )

CakeObject-to-string conversion. Each class can override this method as necessary.

Returns
string
The name of this class

Properties detail

$_baseConfig ¶

protected array

Base configuration settings for MySQL driver

array(
    'persistent' => true,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'cake',
    'port' => '3306',
    'flags' => array()
)

$_charsets ¶

protected array

Mapping of collation names to character set names

array()

$_connection ¶

protected PDO

Reference to the PDO object connection

null

$_useAlias ¶

protected boolean

use alias for update and delete. Set to true if version >= 4.1

true

$columns ¶

public array

MySQL column definition

array(
    'primary_key' => array('name' => 'NOT NULL AUTO_INCREMENT'),
    'string' => array('name' => 'varchar', 'limit' => '255'),
    'text' => array('name' => 'text'),
    'biginteger' => array('name' => 'bigint', 'limit' => '20'),
    'integer' => array('name' => 'int', 'limit' => '11', 'formatter' => 'intval'),
    'float' => array('name' => 'float', 'formatter' => 'floatval'),
    'decimal' => array('name' => 'decimal', 'formatter' => 'floatval'),
    'datetime' => array('name' => 'datetime', 'format' => 'Y-m-d H:i:s', 'formatter' => 'date'),
    'timestamp' => array('name' => 'timestamp', 'format' => 'Y-m-d H:i:s', 'formatter' => 'date'),
    'time' => array('name' => 'time', 'format' => 'H:i:s', 'formatter' => 'date'),
    'date' => array('name' => 'date', 'format' => 'Y-m-d', 'formatter' => 'date'),
    'binary' => array('name' => 'blob'),
    'boolean' => array('name' => 'tinyint', 'limit' => '1')
)

$description ¶

public string

Datasource description

"MySQL DBO Driver"

$endQuote ¶

public string

End quote

"`"

$fieldParameters ¶

public array

List of engine specific additional field parameters used on table creating

array(
    'charset' => array('value' => 'CHARACTER SET', 'quote' => false, 'join' => ' ', 'column' => false, 'position' => 'beforeDefault'),
    'collate' => array('value' => 'COLLATE', 'quote' => false, 'join' => ' ', 'column' => 'Collation', 'position' => 'beforeDefault'),
    'comment' => array('value' => 'COMMENT', 'quote' => true, 'join' => ' ', 'column' => 'Comment', 'position' => 'afterDefault'),
    'unsigned' => array(
        'value' => 'UNSIGNED', 'quote' => false, 'join' => ' ', 'column' => false, 'position' => 'beforeDefault',
        'noVal' => true,
        'options' => array(true),
        'types' => array('integer', 'float', 'decimal', 'biginteger')
    )
)

$startQuote ¶

public string

Start quote

"`"

$tableParameters ¶

public array

List of table engine specific parameters used on table creating

array(
    'charset' => array('value' => 'DEFAULT CHARSET', 'quote' => false, 'join' => '=', 'column' => 'charset'),
    'collate' => array('value' => 'COLLATE', 'quote' => false, 'join' => '=', 'column' => 'Collation'),
    'engine' => array('value' => 'ENGINE', 'quote' => false, 'join' => '=', 'column' => 'Engine'),
    'comment' => array('value' => 'COMMENT', 'quote' => true, 'join' => '=', 'column' => 'Comment'),
)
OpenHub
Rackspace
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (GitHub)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • Slack
  • Paid Support

Generated using CakePHP API Docs