Phalcon db
NOTE
All classes are prefixed with Phalcon
Db\Adapter\AbstractAdapter¶
Abstract Source on GitHub
Base class for Phalcon\Db\Adapter adapters.
This class and its related classes provide a simple SQL database interface for Phalcon Framework. The Phalcon\Db is the basic class you use to connect your PHP application to an RDBMS. There is a different adapter class for each brand of RDBMS.
This component is intended to lower level database operations. If you want to interact with databases using higher level of abstraction use Phalcon\Mvc\Model.
Phalcon\Db\AbstractDb is an abstract class. You only can use it with a database adapter like Phalcon\Db\Adapter\Pdo
use Phalcon\Db;
use Phalcon\Db\Exception;
use Phalcon\Db\Adapter\Pdo\Mysql as MysqlConnection;
try {
$connection = new MysqlConnection(
[
"host" => "192.168.0.11",
"username" => "sigma",
"password" => "secret",
"dbname" => "blog",
"port" => "3306",
]
);
$result = $connection->query(
"SELECT * FROM co_invoices LIMIT 5"
);
$result->setFetchMode(Enum::FETCH_NUM);
while ($invoice = $result->fetch()) {
print_r($invoice);
}
} catch (Exception $e) {
echo $e->getMessage(), PHP_EOL;
}
Phalcon\Db\Adapter\AbstractAdapter- implementsPhalcon\Db\Adapter\AdapterInterface,Phalcon\Events\EventsAwareInterface
Uses Phalcon\Db\CheckInterface · Phalcon\Db\ColumnInterface · Phalcon\Db\DialectInterface · Phalcon\Db\Enum · Phalcon\Db\Exception · Phalcon\Db\Exceptions\CannotInsertWithoutData · Phalcon\Db\Exceptions\IncompleteBindTypes · Phalcon\Db\Exceptions\InvalidDialectClass · Phalcon\Db\Exceptions\InvalidWhereConditions · Phalcon\Db\Exceptions\NestedTransactionChangeBlocked · Phalcon\Db\Exceptions\SavepointsNotSupported · Phalcon\Db\Exceptions\TableMustHaveColumn · Phalcon\Db\Exceptions\UpdateFieldCountMismatch · Phalcon\Db\Index · Phalcon\Db\IndexInterface · Phalcon\Db\RawValue · Phalcon\Db\Reference · Phalcon\Db\ReferenceInterface · Phalcon\Events\EventsAwareInterface · Phalcon\Events\ManagerInterface · Phalcon\Support\Settings
Method Summary¶
public
__construct( array $descriptor )
Phalcon\Db\Adapter constructor
public
bool
addCheck(string $tableName,string $schemaName,CheckInterface $check)
Adds a CHECK constraint to a table. MySQL 8.0.16+ and PostgreSQL
public
bool
addColumn(string $tableName,string $schemaName,ColumnInterface $column)
Adds a column to a table
public
bool
addForeignKey(string $tableName,string $schemaName,ReferenceInterface $reference)
Adds a foreign key to a table
public
bool
addIndex(string $tableName,string $schemaName,IndexInterface $index)
Adds an index to a table
public
bool
addPrimaryKey(string $tableName,string $schemaName,IndexInterface $index)
Adds a primary key to a table
public
bool
createMaterializedView(string $viewName,array $definition,string $schemaName = null)
Creates a materialized view (PostgreSQL only - MySQL and SQLite
public
bool
createSavepoint( string $name )
Creates a new savepoint
public
bool
createTable(string $tableName,string $schemaName,array $definition)
Creates a table
public
bool
createView(string $viewName,array $definition,string $schemaName = null)
Creates a view
public
bool
delete(mixed $table,string $whereCondition = null,array $placeholders = [],array $dataTypes = [])
Deletes data from a table using custom RBDM SQL syntax
public
IndexInterface[]
describeIndexes(string $table,string $schema = null)
Lists table indexes
public
ReferenceInterface[]
describeReferences(string $table,string $schema = null)
Lists table references
public
bool
dropCheck(string $tableName,string $schemaName,string $checkName)
Drops a CHECK constraint from a table. SQLite throws.
public
bool
dropColumn(string $tableName,string $schemaName,string $columnName)
Drops a column from a table
public
bool
dropForeignKey(string $tableName,string $schemaName,string $referenceName)
Drops a foreign key from a table
public
bool
dropIndex(string $tableName,string $schemaName,mixed $indexName)
Drop an index from a table
public
bool
dropMaterializedView(string $viewName,string $schemaName = null,bool $ifExists = true)
Drops a materialized view (PostgreSQL only).
public
bool
dropPrimaryKey(string $tableName,string $schemaName)
Drops a table's primary key
public
bool
dropTable(string $tableName,string $schemaName = null,bool $ifExists = true)
Drops a table from a schema/database
public
bool
dropView(string $viewName,string $schemaName = null,bool $ifExists = true)
Drops a view
public
string
escapeIdentifier( mixed $identifier )
Escapes a column/table/schema name
public
array
fetchAll(string $sqlQuery,int $fetchMode = Enum::FETCH_ASSOC,array $bindParams = [],array $bindTypes = [])
Dumps the complete result of a query into an array
public
string|bool
fetchColumn(string $sqlQuery,array $placeholders = [],mixed $column = 0)
Returns the n'th field of first row in a SQL query result
public
array
fetchOne(string $sqlQuery,mixed $fetchMode = Enum::FETCH_ASSOC,array $bindParams = [],array $bindTypes = [])
Returns the first row in a SQL query result
public
string
forUpdate(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a FOR UPDATE clause. The optional
public
string
getColumnDefinition( ColumnInterface $column )
Returns the SQL column definition from a column
public
string
getColumnList( mixed $columnList )
Gets a list of columns
public
int
getConnectionId()
Gets the active connection unique identifier
public
RawValue
getDefaultIdValue()
Returns the default identity value to be inserted in an identity column
public
RawValue
getDefaultValue()
Returns the default value to make the RBDM use the default value declared
public
array
getDescriptor()
Return descriptor used to connect to the active database
public
DialectInterface
getDialect()
Returns internal dialect instance
public
string
getDialectType()
Name of the dialect used
public
ManagerInterface|null
getEventsManager()
Returns the internal event manager
public
string
getNestedTransactionSavepointName()
Returns the savepoint name to use for nested transactions
public
string
getRealSQLStatement()
Active SQL statement in the object without replace bound parameters
public
array
getSQLBindTypes()
Active SQL statement in the object
public
string
getSQLStatement()
Active SQL statement in the object
public
array
getSQLVariables()
Active SQL variables in the object
public
string
getType()
Type of database system the adapter is used for
public
bool
insert(string $table,array $values,mixed $fields = null,mixed $dataTypes = null)
Inserts data into a table using custom RDBMS SQL syntax
public
bool
insertAsDict(string $table,mixed $data,mixed $dataTypes = null)
Inserts data into a table using custom RBDM SQL syntax
public
bool
isNestedTransactionsWithSavepoints()
Returns if nested transactions should use savepoints
public
string
limit(string $sqlQuery,mixed $number)
Appends a LIMIT clause to $sqlQuery argument
public
array
listTables( string $schemaName = null )
List all tables on a database
public
array
listViews( string $schemaName = null )
List all views on a database
public
bool
modifyColumn(string $tableName,string $schemaName,ColumnInterface $column,ColumnInterface $currentColumn = null)
Modifies a table column based on a definition
public
string
onConflictUpdate(string $sqlQuery,array $conflictColumns,array $updateColumns)
Appends an ON CONFLICT (...) DO UPDATE SET col = excluded.col
public
bool
refreshMaterializedView(string $viewName,string $schemaName = null,bool $concurrent = false)
Refreshes a materialized view (PostgreSQL only). Pass
public
bool
releaseSavepoint( string $name )
Releases given savepoint
public
string
returning(string $sqlQuery,array $columns)
Appends a RETURNING clause to an INSERT/UPDATE/DELETE SQL statement
public
bool
rollbackSavepoint( string $name )
Rollbacks given savepoint
public
setDialect( DialectInterface $dialect )
Sets the dialect used to produce the SQL
public
void
setEventsManager( ManagerInterface $eventsManager )
Sets the event manager
public
AdapterInterface
setNestedTransactionsWithSavepoints( bool $nestedTransactionsWithSavepoints )
Set if nested transactions should use savepoints
public
void
setup( array $options )
Enables/disables options in the Database component.
public
string
sharedLock(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a shared-lock clause. The optional
public
bool
supportSequences()
Check whether the database system requires a sequence to produce
public
bool
supportsDefaultValue()
Check whether the database system support the DEFAULT
public
bool
tableExists(string $tableName,string $schemaName = null)
Generates SQL checking for the existence of a schema.table
public
array
tableOptions(string $tableName,string $schemaName = null)
Gets creation options from a table
public
bool
update(string $table,mixed $fields,mixed $values,mixed $whereCondition = null,mixed $dataTypes = null)
Updates data on a table using custom RBDM SQL syntax
public
bool
updateAsDict(string $table,mixed $data,mixed $whereCondition = null,mixed $dataTypes = null)
Updates data on a table using custom RBDM SQL syntax
public
bool
useExplicitIdValue()
Check whether the database system requires an explicit value for identity
public
bool
viewExists(string $viewName,string $schemaName = null)
Generates SQL checking for the existence of a schema.view
Properties¶
protected
int
$connectionConsecutive = 0
Connection ID
protected
int
$connectionId
Active connection ID
protected
array
$descriptor = []
Descriptor used to connect to a database
protected
DialectInterface
$dialect
Dialect instance
protected
string
$dialectType
Name of the dialect used
protected
ManagerInterface|null
$eventsManager = null
Event Manager
protected
string
$realSqlStatement
The real SQL statement - what was executed
protected
array
$sqlBindTypes = []
Active SQL Bind Types
protected
string
$sqlStatement
Active SQL Statement
protected
array
$sqlVariables = []
Active SQL bound parameter variables
protected
int
$transactionLevel = 0
Current transaction level
protected
bool
$transactionsWithSavepoints = false
Whether the database supports transactions with save points
protected
string
$type
Type of database system the adapter is used for
Methods¶
__construct()¶
Phalcon\Db\Adapter constructor
Note: the options key is forwarded to the static setup() method,
which writes process-global settings affecting every connection in the
process. See setup().
addCheck()¶
Adds a CHECK constraint to a table. MySQL 8.0.16+ and PostgreSQL
issue ALTER TABLE ... ADD CONSTRAINT ... CHECK (...); SQLite throws.
addColumn()¶
Adds a column to a table
addForeignKey()¶
public function addForeignKey(
string $tableName,
string $schemaName,
ReferenceInterface $reference
): bool;
Adds a foreign key to a table
addIndex()¶
Adds an index to a table
addPrimaryKey()¶
public function addPrimaryKey(
string $tableName,
string $schemaName,
IndexInterface $index
): bool;
Adds a primary key to a table
createMaterializedView()¶
public function createMaterializedView(
string $viewName,
array $definition,
string $schemaName = null
): bool;
Creates a materialized view (PostgreSQL only - MySQL and SQLite throw via the dialect).
createSavepoint()¶
Creates a new savepoint
createTable()¶
Creates a table
createView()¶
Creates a view
delete()¶
public function delete(
mixed $table,
string $whereCondition = null,
array $placeholders = [],
array $dataTypes = []
): bool;
Deletes data from a table using custom RBDM SQL syntax
// Deleting existing robot
$success = $connection->delete(
"robots",
"id = 101"
);
// Next SQL sentence is generated
DELETE FROM `robots` WHERE `id` = 101
Warning! If $whereCondition is string it not escaped.
describeIndexes()¶
Lists table indexes
This base implementation consumes the dialect's describeIndexes() SQL
as FETCH_NUM rows by position: column index 2 is the index key name and
column index 4 is the indexed column name. A custom dialect's
describeIndexes() SQL must emit columns in that order, or a custom
adapter must override this method. All bundled adapters except PostgreSQL
override it.
describeReferences()¶
Lists table references
This base implementation consumes the dialect's describeReferences()
SQL as FETCH_NUM rows by position: index 1 is the local column, index 2
the constraint name, index 3 the referenced schema, index 4 the
referenced table, and index 5 the referenced column. A custom dialect's
describeReferences() SQL must emit columns in that order, or a custom
adapter must override this method. Every bundled adapter (MySQL,
PostgreSQL, SQLite) overrides it, so this base implementation has no
in-tree caller and effectively assumes the PostgreSQL row shape.
dropCheck()¶
Drops a CHECK constraint from a table. SQLite throws.
dropColumn()¶
Drops a column from a table
dropForeignKey()¶
public function dropForeignKey(
string $tableName,
string $schemaName,
string $referenceName
): bool;
Drops a foreign key from a table
dropIndex()¶
Drop an index from a table
dropMaterializedView()¶
public function dropMaterializedView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): bool;
Drops a materialized view (PostgreSQL only).
dropPrimaryKey()¶
Drops a table's primary key
dropTable()¶
public function dropTable(
string $tableName,
string $schemaName = null,
bool $ifExists = true
): bool;
Drops a table from a schema/database
dropView()¶
public function dropView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): bool;
Drops a view
escapeIdentifier()¶
Escapes a column/table/schema name
$escapedTable = $connection->escapeIdentifier(
"robots"
);
$escapedTable = $connection->escapeIdentifier(
[
"store",
"robots",
]
);
fetchAll()¶
public function fetchAll(
string $sqlQuery,
int $fetchMode = Enum::FETCH_ASSOC,
array $bindParams = [],
array $bindTypes = []
): array;
Dumps the complete result of a query into an array
// Getting all robots with associative indexes only
$robots = $connection->fetchAll(
"SELECT * FROM robots",
\Phalcon\Db\Enum::FETCH_ASSOC
);
foreach ($robots as $robot) {
print_r($robot);
}
// Getting all robots that contains word "robot" withing the name
$robots = $connection->fetchAll(
"SELECT * FROM robots WHERE name LIKE :name",
\Phalcon\Db\Enum::FETCH_ASSOC,
[
"name" => "%robot%",
]
);
foreach($robots as $robot) {
print_r($robot);
}
fetchColumn()¶
public function fetchColumn(
string $sqlQuery,
array $placeholders = [],
mixed $column = 0
): string|bool;
Returns the n'th field of first row in a SQL query result
// Getting count of robots
$robotsCount = $connection->fetchColumn("SELECT count(*) FROM robots");
print_r($robotsCount);
// Getting name of last edited robot
$robot = $connection->fetchColumn(
"SELECT id, name FROM robots ORDER BY modified DESC",
1
);
print_r($robot);
fetchOne()¶
public function fetchOne(
string $sqlQuery,
mixed $fetchMode = Enum::FETCH_ASSOC,
array $bindParams = [],
array $bindTypes = []
): array;
Returns the first row in a SQL query result
// Getting first robot
$robot = $connection->fetchOne("SELECT * FROM robots");
print_r($robot);
// Getting first robot with associative indexes only
$robot = $connection->fetchOne(
"SELECT * FROM robots",
\Phalcon\Db\Enum::FETCH_ASSOC
);
print_r($robot);
forUpdate()¶
Returns a SQL modified with a FOR UPDATE clause. The optional
modifier is passed straight to the dialect (use Dialect::LOCK_NOWAIT
/ Dialect::LOCK_SKIP_LOCKED / Dialect::LOCK_NONE).
getColumnDefinition()¶
Returns the SQL column definition from a column
getColumnList()¶
Gets a list of columns
getConnectionId()¶
Gets the active connection unique identifier
getDefaultIdValue()¶
Returns the default identity value to be inserted in an identity column
// Inserting a new robot with a valid default value for the column 'id'
$success = $connection->insert(
"robots",
[
$connection->getDefaultIdValue(),
"Astro Boy",
1952,
],
[
"id",
"name",
"year",
]
);
getDefaultValue()¶
Returns the default value to make the RBDM use the default value declared in the table definition
// Inserting a new robot with a valid default value for the column 'year'
$success = $connection->insert(
"robots",
[
"Astro Boy",
$connection->getDefaultValue()
],
[
"name",
"year",
]
);
@todo Return NULL if this is not supported by the adapter
getDescriptor()¶
Return descriptor used to connect to the active database
getDialect()¶
Returns internal dialect instance
getDialectType()¶
Name of the dialect used
getEventsManager()¶
Returns the internal event manager
getNestedTransactionSavepointName()¶
Returns the savepoint name to use for nested transactions
getRealSQLStatement()¶
Active SQL statement in the object without replace bound parameters
getSQLBindTypes()¶
Active SQL statement in the object
getSQLStatement()¶
Active SQL statement in the object
getSQLVariables()¶
Active SQL variables in the object
getType()¶
Type of database system the adapter is used for
insert()¶
public function insert(
string $table,
array $values,
mixed $fields = null,
mixed $dataTypes = null
): bool;
Inserts data into a table using custom RDBMS SQL syntax
// Inserting a new robot
$success = $connection->insert(
"robots",
["Astro Boy", 1952],
["name", "year"]
);
// Next SQL sentence is sent to the database system
INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);
insertAsDict()¶
Inserts data into a table using custom RBDM SQL syntax
// Inserting a new robot
$success = $connection->insertAsDict(
"robots",
[
"name" => "Astro Boy",
"year" => 1952,
]
);
// Next SQL sentence is sent to the database system
INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);
isNestedTransactionsWithSavepoints()¶
Returns if nested transactions should use savepoints
limit()¶
Appends a LIMIT clause to $sqlQuery argument
listTables()¶
List all tables on a database
listViews()¶
List all views on a database
modifyColumn()¶
public function modifyColumn(
string $tableName,
string $schemaName,
ColumnInterface $column,
ColumnInterface $currentColumn = null
): bool;
Modifies a table column based on a definition
onConflictUpdate()¶
public function onConflictUpdate(
string $sqlQuery,
array $conflictColumns,
array $updateColumns
): string;
Appends an ON CONFLICT (...) DO UPDATE SET col = excluded.col
upsert clause to the supplied INSERT statement. Supported by
PostgreSQL and SQLite 3.24+; MySQL throws.
refreshMaterializedView()¶
public function refreshMaterializedView(
string $viewName,
string $schemaName = null,
bool $concurrent = false
): bool;
Refreshes a materialized view (PostgreSQL only). Pass
concurrent = true for non-blocking refresh.
releaseSavepoint()¶
Releases given savepoint
returning()¶
Appends a RETURNING clause to an INSERT/UPDATE/DELETE SQL statement
and returns the modified SQL. Supported by PostgreSQL and SQLite 3.35+;
MySQL throws (no RETURNING construct). Pass ["*"] for RETURNING *.
rollbackSavepoint()¶
Rollbacks given savepoint
setDialect()¶
Sets the dialect used to produce the SQL
setEventsManager()¶
Sets the event manager
setNestedTransactionsWithSavepoints()¶
public function setNestedTransactionsWithSavepoints( bool $nestedTransactionsWithSavepoints ): AdapterInterface;
Set if nested transactions should use savepoints
setup()¶
Enables/disables options in the Database component.
The flags are stored as process-global Phalcon\Support\Settings
(db.escape_identifiers, db.force_casting) and therefore affect every
connection in the process at once, last-writer-wins. Call this once at
bootstrap; it is not per-connection configuration. Because the
constructor calls setup() whenever a descriptor carries an options
key, constructing one adapter with options can change the SQL another,
already-configured connection generates.
sharedLock()¶
Returns a SQL modified with a shared-lock clause. The optional
modifier is passed straight to the dialect (use
Dialect::LOCK_NOWAIT / Dialect::LOCK_SKIP_LOCKED for PostgreSQL).
supportSequences()¶
Check whether the database system requires a sequence to produce auto-numeric values
supportsDefaultValue()¶
Check whether the database system support the DEFAULT keyword (SQLite does not support it)
tableExists()¶
Generates SQL checking for the existence of a schema.table
tableOptions()¶
Gets creation options from a table
update()¶
public function update(
string $table,
mixed $fields,
mixed $values,
mixed $whereCondition = null,
mixed $dataTypes = null
): bool;
Updates data on a table using custom RBDM SQL syntax
// Updating existing robot
$success = $connection->update(
"robots",
["name"],
["New Astro Boy"],
"id = 101"
);
// Next SQL sentence is sent to the database system
UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101
// Updating existing robot with array condition and $dataTypes
$success = $connection->update(
"robots",
["name"],
["New Astro Boy"],
[
"conditions" => "id = ?",
"bind" => [$some_unsafe_id],
"bindTypes" => [PDO::PARAM_INT], // use only if you use $dataTypes param
],
[
PDO::PARAM_STR
]
);
Warning! If $whereCondition is string it not escaped.
updateAsDict()¶
public function updateAsDict(
string $table,
mixed $data,
mixed $whereCondition = null,
mixed $dataTypes = null
): bool;
Updates data on a table using custom RBDM SQL syntax Another, more convenient syntax
// Updating existing robot
$success = $connection->updateAsDict(
"robots",
[
"name" => "New Astro Boy",
],
"id = 101"
);
// Next SQL sentence is sent to the database system
UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101
useExplicitIdValue()¶
Check whether the database system requires an explicit value for identity columns
viewExists()¶
Generates SQL checking for the existence of a schema.view
Db\Adapter\AdapterInterface¶
Interface Source on GitHub
Phalcon\Db\Adapter\AdapterInterface
Phalcon\Contracts\Db\Adapter\AdapterPhalcon\Db\Adapter\AdapterInterface
Uses Phalcon\Contracts\Db\Adapter\Adapter
Db\Adapter\PdoFactory¶
Class Source on GitHub
Phalcon\Factory\AbstractConfigFactoryPhalcon\Factory\AbstractFactoryPhalcon\Db\Adapter\PdoFactory
Uses Phalcon\Factory\AbstractFactory · Phalcon\Support\Helper\Arr\Get
Method Summary¶
public
__construct( array $services = [] )
Constructor
public
AdapterInterface
load( mixed $config )
Factory to create an instance from a Config object
public
AdapterInterface
newInstance(string $name,array $options = [])
Create a new instance of the adapter
protected
string
getExceptionClass()
protected
array
getServices()
Returns the available adapters
Methods¶
__construct()¶
Constructor
load()¶
Factory to create an instance from a Config object
newInstance()¶
Create a new instance of the adapter
getExceptionClass()¶
getServices()¶
Returns the available adapters
Db\Adapter\Pdo\AbstractPdo¶
Abstract Source on GitHub
Phalcon\Db\Adapter\Pdo is the Phalcon\Db that internally uses PDO to connect to a database
use Phalcon\Db\Adapter\Pdo\Mysql;
$config = [
"host" => "localhost",
"dbname" => "blog",
"port" => 3306,
"username" => "sigma",
"password" => "secret",
];
$connection = new Mysql($config);
Phalcon\Db\Adapter\AbstractAdapterPhalcon\Db\Adapter\Pdo\AbstractPdo
Uses Phalcon\Db\Adapter\AbstractAdapter · Phalcon\Db\Column · Phalcon\Db\Exception · Phalcon\Db\Exceptions\CannotPrepareStatement · Phalcon\Db\Exceptions\InvalidBindParameter · Phalcon\Db\Exceptions\MatchedParameterNotFound · Phalcon\Db\Exceptions\NoActiveTransaction · Phalcon\Db\ResultInterface · Phalcon\Db\Result\PdoResult · Phalcon\Events\ManagerInterface · Phalcon\Support\Settings
Method Summary¶
public
__construct( array $descriptor )
Constructor for Phalcon\Db\Adapter\Pdo
public
int
affectedRows()
Returns the number of affected rows by the latest INSERT/UPDATE/DELETE
public
bool
begin( bool $nesting = true )
Starts a transaction in the connection
public
void
close()
Closes the active connection returning success. Phalcon automatically
public
bool
commit( bool $nesting = true )
Commits the active transaction in the connection
public
void
connect( array $descriptor = [] )
This method is automatically called in \Phalcon\Db\Adapter\Pdo
public
array
convertBoundParams(string $sql,array $params = [])
Converts bound parameters such as :name: or ?1 into PDO bind params ?
public
string
escapeString( string $str )
Escapes a value to avoid SQL injections according to the active charset
public
bool
execute(string $sqlStatement,array $bindParams = [],array $bindTypes = [])
Sends SQL statements to the database server returning the success state.
public
\PDOStatement
executePrepared(\PDOStatement $statement,array $placeholders,array $dataTypes = [])
Executes a prepared statement binding. This function uses integer indexes
public
array
getErrorInfo()
Return the error info, if any
public
mixed
getInternalHandler()
Return internal PDO handler
public
int
getTransactionLevel()
Returns the current transaction nesting level
public
bool
isUnderTransaction()
Checks whether the connection is under a transaction
public
string|bool
lastInsertId( string $name = null )
Returns the insert id for the auto_increment/serial column inserted in
public
\PDOStatement
prepare( string $sqlStatement )
Returns a PDO prepared statement to be executed with 'executePrepared'
public
ResultInterface|bool
query(string $sqlStatement,array $bindParams = [],array $bindTypes = [])
Sends SQL statements to the database server returning the success state.
public
bool
rollback( bool $nesting = true )
Rollbacks the active transaction in the connection
protected
array
getDsnDefaults()
Returns PDO adapter DSN defaults as a key-value map.
protected
void
prepareRealSql(string $statement,array $parameters)
Constructs the SQL statement (with parameters)
Constants¶
string
BIND_PATTERN = "/\\?([0-9]+)|:([a-zA-Z0-9_]+):/"
Properties¶
protected
int
$affectedRows = 0
Last affected rows
protected
\PDO
$pdo
PDO Handler
Methods¶
__construct()¶
Constructor for Phalcon\Db\Adapter\Pdo
affectedRows()¶
Returns the number of affected rows by the latest INSERT/UPDATE/DELETE executed in the database system
begin()¶
Starts a transaction in the connection
close()¶
Closes the active connection returning success. Phalcon automatically closes and destroys active connections when the request ends
commit()¶
Commits the active transaction in the connection
connect()¶
This method is automatically called in \Phalcon\Db\Adapter\Pdo constructor.
Call it when you need to restore a database connection.
use Phalcon\Db\Adapter\Pdo\Mysql;
// Make a connection
$connection = new Mysql(
[
"host" => "localhost",
"username" => "sigma",
"password" => "secret",
"dbname" => "blog",
"port" => 3306,
]
);
// Reconnect
$connection->connect();
convertBoundParams()¶
Converts bound parameters such as :name: or ?1 into PDO bind params ?
print_r(
$connection->convertBoundParams(
"SELECT * FROM robots WHERE name = :name:",
[
"Bender",
]
)
);
escapeString()¶
Escapes a value to avoid SQL injections according to the active charset in the connection
execute()¶
public function execute(
string $sqlStatement,
array $bindParams = [],
array $bindTypes = []
): bool;
Sends SQL statements to the database server returning the success state. Use this method only when the SQL statement sent to the server does not return any rows
// Inserting data
$success = $connection->execute(
"INSERT INTO robots VALUES (1, 'Astro Boy')"
);
$success = $connection->execute(
"INSERT INTO robots VALUES (?, ?)",
[
1,
"Astro Boy",
]
);
executePrepared()¶
public function executePrepared(
\PDOStatement $statement,
array $placeholders,
array $dataTypes = []
): \PDOStatement;
Executes a prepared statement binding. This function uses integer indexes starting from zero
use Phalcon\Db\Column;
$statement = $db->prepare(
"SELECT * FROM robots WHERE name = :name"
);
$result = $connection->executePrepared(
$statement,
[
"name" => "Voltron",
],
[
"name" => Column::BIND_PARAM_STR,
]
);
getErrorInfo()¶
Return the error info, if any
getInternalHandler()¶
Return internal PDO handler
getTransactionLevel()¶
Returns the current transaction nesting level
isUnderTransaction()¶
Checks whether the connection is under a transaction
lastInsertId()¶
Returns the insert id for the auto_increment/serial column inserted in the latest executed SQL statement
// Inserting a new robot
$success = $connection->insert(
"robots",
[
"Astro Boy",
1952,
],
[
"name",
"year",
]
);
// Getting the generated id
$id = $connection->lastInsertId();
prepare()¶
Returns a PDO prepared statement to be executed with 'executePrepared'
use Phalcon\Db\Column;
$statement = $db->prepare(
"SELECT * FROM robots WHERE name = :name"
);
$result = $connection->executePrepared(
$statement,
[
"name" => "Voltron",
],
[
"name" => Column::BIND_PARAM_INT,
]
);
query()¶
public function query(
string $sqlStatement,
array $bindParams = [],
array $bindTypes = []
): ResultInterface|bool;
Sends SQL statements to the database server returning the success state. Use this method only when the SQL statement sent to the server is returning rows
// Querying data
$resultset = $connection->query(
"SELECT * FROM robots WHERE type = 'mechanical'"
);
$resultset = $connection->query(
"SELECT * FROM robots WHERE type = ?",
[
"mechanical",
]
);
rollback()¶
Rollbacks the active transaction in the connection
getDsnDefaults()¶
Returns PDO adapter DSN defaults as a key-value map.
prepareRealSql()¶
Constructs the SQL statement (with parameters)
@see https://stackoverflow.com/a/8403150
Db\Adapter\Pdo\Mysql¶
Class Source on GitHub
Specific functions for the MySQL database system
use Phalcon\Db\Adapter\Pdo\Mysql;
$config = [
"host" => "localhost",
"dbname" => "blog",
"port" => 3306,
"username" => "sigma",
"password" => "secret",
];
$connection = new Mysql($config);
Phalcon\Db\Adapter\AbstractAdapterPhalcon\Db\Adapter\Pdo\AbstractPdoPhalcon\Db\Adapter\Pdo\Mysql
Uses Phalcon\Db\Adapter\Pdo\AbstractPdo · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Enum · Phalcon\Db\Exception · Phalcon\Db\Exceptions\MissingForeignKeyChecks · Phalcon\Db\Index · Phalcon\Db\IndexInterface · Phalcon\Db\Reference · Phalcon\Db\ReferenceInterface
Method Summary¶
public
bool
addForeignKey(string $tableName,string $schemaName,ReferenceInterface $reference)
Adds a foreign key to a table
public
ColumnInterface[]
describeColumns(string $table,string $schema = null)
Returns an array of Phalcon\Db\Column objects describing a table
public
IndexInterface[]
describeIndexes(string $table,string $schema = null)
Lists table indexes
public
ReferenceInterface[]
describeReferences(string $table,string $schema = null)
Lists table references
protected
array
getDsnDefaults()
Returns PDO adapter DSN defaults as a key-value map.
Properties¶
protected
string
$dialectType = "mysql"
protected
string
$type = "mysql"
Methods¶
addForeignKey()¶
public function addForeignKey(
string $tableName,
string $schemaName,
ReferenceInterface $reference
): bool;
Adds a foreign key to a table
describeColumns()¶
Returns an array of Phalcon\Db\Column objects describing a table
describeIndexes()¶
Lists table indexes
describeReferences()¶
Lists table references
getDsnDefaults()¶
Returns PDO adapter DSN defaults as a key-value map.
Db\Adapter\Pdo\Postgresql¶
Class Source on GitHub
Specific functions for the PostgreSQL database system
use Phalcon\Db\Adapter\Pdo\Postgresql;
$config = [
"host" => "localhost",
"dbname" => "blog",
"port" => 5432,
"username" => "postgres",
"password" => "secret",
];
$connection = new Postgresql($config);
Phalcon\Db\Adapter\AbstractAdapterPhalcon\Db\Adapter\Pdo\AbstractPdoPhalcon\Db\Adapter\Pdo\Postgresql
Uses Phalcon\Db\Adapter\Pdo\AbstractPdo · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Enum · Phalcon\Db\Exception · Phalcon\Db\Exceptions\TableMustHaveColumn · Phalcon\Db\RawValue · Phalcon\Db\Reference · Phalcon\Db\ReferenceInterface · Throwable
Method Summary¶
public
__construct( array $descriptor )
Constructor for Phalcon\Db\Adapter\Pdo\Postgresql
public
void
connect( array $descriptor = [] )
This method is automatically called in Phalcon\Db\Adapter\Pdo
public
bool
createTable(string $tableName,string $schemaName,array $definition)
Creates a table
public
ColumnInterface[]
describeColumns(string $table,string $schema = null)
Returns an array of Phalcon\Db\Column objects describing a table
public
ReferenceInterface[]
describeReferences(string $table,string $schema = null)
Lists table references
public
RawValue
getDefaultIdValue()
Returns the default identity value to be inserted in an identity column
public
bool
modifyColumn(string $tableName,string $schemaName,ColumnInterface $column,ColumnInterface $currentColumn = null)
Modifies a table column based on a definition
public
bool
supportSequences()
Check whether the database system requires a sequence to produce
public
bool
useExplicitIdValue()
Check whether the database system requires an explicit value for identity
protected
array
getDsnDefaults()
Returns PDO adapter DSN defaults as a key-value map.
Properties¶
protected
string
$dialectType = "postgresql"
protected
string
$type = "pgsql"
Methods¶
__construct()¶
Constructor for Phalcon\Db\Adapter\Pdo\Postgresql
connect()¶
This method is automatically called in Phalcon\Db\Adapter\Pdo constructor. Call it when you need to restore a database connection.
createTable()¶
Creates a table
describeColumns()¶
Returns an array of Phalcon\Db\Column objects describing a table
describeReferences()¶
Lists table references
getDefaultIdValue()¶
Returns the default identity value to be inserted in an identity column
// Inserting a new robot with a valid default value for the column 'id'
$success = $connection->insert(
"robots",
[
$connection->getDefaultIdValue(),
"Astro Boy",
1952,
],
[
"id",
"name",
"year",
]
);
modifyColumn()¶
public function modifyColumn(
string $tableName,
string $schemaName,
ColumnInterface $column,
ColumnInterface $currentColumn = null
): bool;
Modifies a table column based on a definition
supportSequences()¶
Check whether the database system requires a sequence to produce auto-numeric values
useExplicitIdValue()¶
Check whether the database system requires an explicit value for identity columns
getDsnDefaults()¶
Returns PDO adapter DSN defaults as a key-value map.
Db\Adapter\Pdo\Sqlite¶
Class Source on GitHub
Specific functions for the SQLite database system
Phalcon\Db\Adapter\AbstractAdapterPhalcon\Db\Adapter\Pdo\AbstractPdoPhalcon\Db\Adapter\Pdo\Sqlite
Uses Phalcon\Db\Adapter\Pdo\AbstractPdo · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Enum · Phalcon\Db\Exception · Phalcon\Db\Exceptions\MissingSqliteDatabase · Phalcon\Db\Index · Phalcon\Db\IndexInterface · Phalcon\Db\RawValue · Phalcon\Db\Reference · Phalcon\Db\ReferenceInterface
Method Summary¶
public
__construct( array $descriptor )
Constructor for Phalcon\Db\Adapter\Pdo\Sqlite
public
void
connect( array $descriptor = [] )
This method is automatically called in Phalcon\Db\Adapter\Pdo
public
ColumnInterface[]
describeColumns(string $table,string $schema = null)
Returns an array of Phalcon\Db\Column objects describing a table
public
IndexInterface[]
describeIndexes(string $table,string $schema = null)
Lists table indexes
public
ReferenceInterface[]
describeReferences(string $table,string $schema = null)
Lists table references
public
RawValue
getDefaultValue()
Returns the default value to make the RBDM use the default value declared
public
bool
supportsDefaultValue()
SQLite does not support the DEFAULT keyword
public
bool
useExplicitIdValue()
Check whether the database system requires an explicit value for identity
protected
array
getDsnDefaults()
Returns PDO adapter DSN defaults as a key-value map.
Properties¶
protected
string
$dialectType = "sqlite"
protected
string
$type = "sqlite"
Methods¶
__construct()¶
Constructor for Phalcon\Db\Adapter\Pdo\Sqlite
connect()¶
This method is automatically called in Phalcon\Db\Adapter\Pdo constructor. Call it when you need to restore a database connection.
describeColumns()¶
Returns an array of Phalcon\Db\Column objects describing a table
describeIndexes()¶
Lists table indexes
describeReferences()¶
Lists table references
getDefaultValue()¶
Returns the default value to make the RBDM use the default value declared in the table definition
// Inserting a new robot with a valid default value for the column 'year'
$success = $connection->insert(
"robots",
[
"Astro Boy",
$connection->getDefaultValue(),
],
[
"name",
"year",
]
);
supportsDefaultValue()¶
SQLite does not support the DEFAULT keyword
useExplicitIdValue()¶
Check whether the database system requires an explicit value for identity columns
getDsnDefaults()¶
Returns PDO adapter DSN defaults as a key-value map.
Db\Check¶
Class Source on GitHub
Allows to define CHECK constraints on tables. CHECK constraints enforce
a boolean SQL predicate on each row of the table; rows that fail the
predicate are rejected at INSERT/UPDATE time.
use Phalcon\Db\Check;
$positivePrice = new Check(
"chk_price_positive",
[
"expression" => "price > 0",
]
);
// Used inside a createTable() definition
$connection->createTable(
"products",
null,
[
"columns" => [ ... ],
"checks" => [$positivePrice],
]
);
// Or added to an existing table (MySQL 8.0.16+ and PostgreSQL).
// SQLite cannot add CHECK constraints to existing tables.
$connection->addCheck("products", null, $positivePrice);
Phalcon\Db\Check- implementsPhalcon\Db\CheckInterface
Uses Phalcon\Db\Exceptions\CheckExpressionRequired · Phalcon\Db\Exceptions\InvalidCheckExpression
Method Summary¶
public
__construct(string $name,array $definition)
Phalcon\Db\Check constructor
public
string
getExpression()
Returns the CHECK expression
public
string
getName()
Returns the constraint name (may be an empty string for unnamed)
Properties¶
protected
string
$expression
The boolean SQL predicate this constraint enforces.
protected
string
$name
The CHECK constraint name. An empty string indicates an unnamed
constraint - the dialect will emit the clause without a CONSTRAINT
prefix in that case.
Methods¶
__construct()¶
Phalcon\Db\Check constructor
getExpression()¶
Returns the CHECK expression
getName()¶
Returns the constraint name (may be an empty string for unnamed)
Db\CheckInterface¶
Interface Source on GitHub
Phalcon\Db\CheckInterface
Phalcon\Contracts\Db\CheckPhalcon\Db\CheckInterface
Uses Phalcon\Contracts\Db\Check
Db\Column¶
Class Source on GitHub
Allows to define columns to be used on create or alter table operations
use Phalcon\Db\Column as Column;
// Column definition
$column = new Column(
"id",
[
"type" => Column::TYPE_INTEGER,
"size" => 10,
"unsigned" => true,
"notNull" => true,
"autoIncrement" => true,
"first" => true,
"comment" => "",
]
);
// Add column to existing table
$connection->addColumn("robots", null, $column);
Phalcon\Db\Column- implementsPhalcon\Db\ColumnInterface
Uses Phalcon\Db\Exceptions\ColumnTypeRejectsAutoIncrement · Phalcon\Db\Exceptions\ColumnTypeRejectsScale · Phalcon\Db\Exceptions\ColumnTypeRequired · Phalcon\Db\Exceptions\GeneratedAutoIncrementConflict · Phalcon\Db\Exceptions\GeneratedDefaultConflict · Phalcon\Db\Exceptions\InvalidGenerationExpression
Method Summary¶
public
__construct(string $name,array $definition)
Phalcon\Db\Column constructor
public
string|null
getAfterPosition()
Check whether field absolute to position in table
public
int
getBindType()
Returns the type of bind handling
public
string|null
getComment()
Column's comment
public
mixed
getDefault()
Default column value
public
string|null
getGenerationExpression()
Returns the generation expression for a generated/computed column.
public
string
getName()
Column's name
public
int
getScale()
Integer column number scale
public
int|string
getSize()
Integer column size
public
int|string
getType()
Column data type
public
int
getTypeReference()
Column data type reference
public
array|string
getTypeValues()
Column data type values
public
bool
hasDefault()
Check whether column has default value
public
bool
isArray()
Whether the column is an array of its base type. Recognized by the
public
bool
isAutoIncrement()
Auto-Increment
public
bool
isFirst()
Check whether column have first position in table
public
bool
isGenerated()
Whether the column is a generated/computed column.
public
bool
isGenerationStored()
Whether a generated column is STORED. false means VIRTUAL.
public
bool
isInvisible()
Whether the column is declared INVISIBLE (MySQL 8.0.23+). Invisible
public
bool
isNotNull()
Not null
public
bool
isNumeric()
Check whether column have an numeric type
public
bool
isPrimary()
Column is part of the primary key?
public
bool
isUnsigned()
Returns true if number column is unsigned
Constants¶
int
BIND_PARAM_BLOB = 3
Bind Type Blob
int
BIND_PARAM_BOOL = 5
Bind Type Bool
int
BIND_PARAM_DECIMAL = 32
Bind Type Decimal
int
BIND_PARAM_INT = 1
Bind Type Integer
int
BIND_PARAM_NULL = 0
Bind Type Null
int
BIND_PARAM_STR = 2
Bind Type String
int
BIND_SKIP = 1024
Skip binding by type
int
TYPE_BIGINTEGER = 14
Big integer abstract data type
int
TYPE_BINARY = 27
Binary abstract data type
int
TYPE_BIT = 19
Bit abstract data type
int
TYPE_BLOB = 11
Blob abstract data type
int
TYPE_BOOLEAN = 8
Bool abstract data type
int
TYPE_BYTEA = 30
PostgreSQL BYTEA binary type
int
TYPE_CHAR = 5
Char abstract data type
int
TYPE_CIDR = 32
PostgreSQL CIDR network-address type
int
TYPE_DATE = 1
Date abstract data type
int
TYPE_DATERANGE = 39
PostgreSQL DATERANGE range-of-date type
int
TYPE_DATETIME = 4
Datetime abstract data type
int
TYPE_DECIMAL = 3
Decimal abstract data type
int
TYPE_DOUBLE = 9
Double abstract data type
int
TYPE_ENUM = 18
Enum abstract data type
int
TYPE_FLOAT = 7
Float abstract data type
int
TYPE_GEOMETRY = 40
Spatial GEOMETRY base type (MySQL 5.7+; PostgreSQL + PostGIS)
int
TYPE_GEOMETRYCOLLECTION = 47
Spatial GEOMETRYCOLLECTION type (MySQL; PostgreSQL + PostGIS)
int
TYPE_INET = 31
PostgreSQL INET IPv4/IPv6 address type
int
TYPE_INT4RANGE = 34
PostgreSQL INT4RANGE range-of-integer type
int
TYPE_INT8RANGE = 35
PostgreSQL INT8RANGE range-of-bigint type
int
TYPE_INTEGER = 0
Int abstract data type
int
TYPE_JSON = 15
Json abstract data type
int
TYPE_JSONB = 16
Jsonb abstract data type
int
TYPE_LINESTRING = 42
Spatial LINESTRING type (MySQL; PostgreSQL + PostGIS)
int
TYPE_LONGBLOB = 13
Longblob abstract data type
int
TYPE_LONGTEXT = 24
Longtext abstract data type
int
TYPE_MACADDR = 33
PostgreSQL MACADDR MAC-address type
int
TYPE_MEDIUMBLOB = 12
Mediumblob abstract data type
int
TYPE_MEDIUMINTEGER = 21
Mediumintegerr abstract data type
int
TYPE_MEDIUMTEXT = 23
Mediumtext abstract data type
int
TYPE_MULTILINESTRING = 45
Spatial MULTILINESTRING type (MySQL; PostgreSQL + PostGIS)
int
TYPE_MULTIPOINT = 44
Spatial MULTIPOINT type (MySQL; PostgreSQL + PostGIS)
int
TYPE_MULTIPOLYGON = 46
Spatial MULTIPOLYGON type (MySQL; PostgreSQL + PostGIS)
int
TYPE_NUMRANGE = 36
PostgreSQL NUMRANGE range-of-numeric type
int
TYPE_POINT = 41
Spatial POINT type (MySQL; PostgreSQL + PostGIS)
int
TYPE_POLYGON = 43
Spatial POLYGON type (MySQL; PostgreSQL + PostGIS)
int
TYPE_SMALLINTEGER = 22
Smallint abstract data type
int
TYPE_TEXT = 6
Text abstract data type
int
TYPE_TIME = 20
Time abstract data type
int
TYPE_TIMESTAMP = 17
Timestamp abstract data type
int
TYPE_TINYBLOB = 10
Tinyblob abstract data type
int
TYPE_TINYINTEGER = 26
Tinyint abstract data type
int
TYPE_TINYTEXT = 25
Tinytext abstract data type
int
TYPE_TSRANGE = 37
PostgreSQL TSRANGE range-of-timestamp (without time zone) type
int
TYPE_TSTZRANGE = 38
PostgreSQL TSTZRANGE range-of-timestamp (with time zone) type
int
TYPE_UUID = 29
UUID abstract data type
int
TYPE_VARBINARY = 28
Varbinary abstract data type
int
TYPE_VARCHAR = 2
Varchar abstract data type
Properties¶
protected
string|null
$after = null
Column Position
protected
bool
$autoIncrement = false
Column is autoIncrement?
protected
int
$bindType = 2
Bind Type
protected
string|null
$comment = null
Column's comment
protected
mixed|null
$defaultValue = null
Default column value
protected
bool
$first = false
Position is first
protected
string|null
$generated = null
Generation expression for GENERATED ALWAYS AS (...). Null when the
column is not a generated/computed column.
protected
bool
$generationStored = false
Whether a generated column is STORED (true) or VIRTUAL (false).
Ignored when the column is not generated. PostgreSQL only supports
STORED and emits it regardless of this flag.
protected
bool
$invisible = false
Whether the column is INVISIBLE (MySQL 8.0.23+). Invisible columns
are excluded from SELECT * expansion but can still be referenced
explicitly.
protected
bool
$isArray = false
Whether the column is an array of its base type. Recognized by the
PostgreSQL dialect (e.g. INTEGER[], TEXT[]). MySQL and SQLite
ignore the flag.
protected
bool
$isNumeric = false
The column have some numeric type?
protected
string
$name
Column's name
protected
bool
$notNull = true
Column not nullable?
Default SQL definition is NOT NULL.
protected
bool
$primary = false
Column is part of the primary key?
protected
int
$scale = 0
Integer column number scale
protected
int|string
$size = 0
Integer column size
protected
int
$type
Column data type
protected
int
$typeReference = -1
Column data type reference
protected
array|string
$typeValues = []
Column data type values
protected
bool
$unsigned = false
Integer column unsigned?
Methods¶
__construct()¶
Phalcon\Db\Column constructor
getAfterPosition()¶
Check whether field absolute to position in table
getBindType()¶
Returns the type of bind handling
getComment()¶
Column's comment
getDefault()¶
Default column value
getGenerationExpression()¶
Returns the generation expression for a generated/computed column.
Returns null when the column is not generated.
getName()¶
Column's name
getScale()¶
Integer column number scale
getSize()¶
Integer column size
getType()¶
Column data type
getTypeReference()¶
Column data type reference
getTypeValues()¶
Column data type values
hasDefault()¶
Check whether column has default value
isArray()¶
Whether the column is an array of its base type. Recognized by the
PostgreSQL dialect (e.g. INTEGER[], TEXT[]); MySQL and SQLite
ignore the flag.
isAutoIncrement()¶
Auto-Increment
isFirst()¶
Check whether column have first position in table
isGenerated()¶
Whether the column is a generated/computed column.
isGenerationStored()¶
Whether a generated column is STORED. false means VIRTUAL.
Always meaningful only when isGenerated() is true.
isInvisible()¶
Whether the column is declared INVISIBLE (MySQL 8.0.23+). Invisible
columns are excluded from SELECT * expansion but can still be
referenced explicitly. PostgreSQL and SQLite have no equivalent and
dialects targeting them ignore the flag.
isNotNull()¶
Not null
isNumeric()¶
Check whether column have an numeric type
isPrimary()¶
Column is part of the primary key?
isUnsigned()¶
Returns true if number column is unsigned
Db\ColumnInterface¶
Interface Source on GitHub
Phalcon\Db\ColumnInterface
Phalcon\Contracts\Db\ColumnPhalcon\Db\ColumnInterface
Uses Phalcon\Contracts\Db\Column
Db\Dialect¶
Abstract Source on GitHub
This is the base class to each database dialect. This implements common methods to transform intermediate code into its RDBMS related syntax
Phalcon\Db\Dialect- implementsPhalcon\Db\DialectInterface
Uses Phalcon\Db\Exceptions\ConflictTargetColumnRequired · Phalcon\Db\Exceptions\ConflictUpdateColumnRequired · Phalcon\Db\Exceptions\InvalidGroupByExpression · Phalcon\Db\Exceptions\InvalidListExpression · Phalcon\Db\Exceptions\InvalidOrderByExpression · Phalcon\Db\Exceptions\InvalidSqlExpression · Phalcon\Db\Exceptions\InvalidSqlExpressionType · Phalcon\Db\Exceptions\InvalidUnaryExpression · Phalcon\Db\Exceptions\MaterializedViewsNotSupported · Phalcon\Db\Exceptions\MissingDefinitionKey · Phalcon\Db\Exceptions\ReturningNotSupported · Phalcon\Db\Exceptions\UnsupportedOperator · Phalcon\Support\Settings
Method Summary¶
public
string
createMaterializedView(string $viewName,array $definition,string $schemaName = null)
Generates SQL to create a materialized view. Supported by PostgreSQL
public
string
createSavepoint( string $name )
Generate SQL to create a new savepoint
public
string
dropMaterializedView(string $viewName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a materialized view. Supported by PostgreSQL.
public
string
escape(string $str,string $escapeChar = null)
Escape identifiers
public
string
escapeSchema(string $str,string $escapeChar = null)
Escape Schema
public
string
forUpdate(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a FOR UPDATE clause. The optional modifier
public
string
getColumnList(array $columnList,string $escapeChar = null,array $bindCounts = [])
Gets a list of columns with escaped identifiers
public
array
getCustomFunctions()
Returns registered functions
public
string
getSqlColumn(mixed $column,string $escapeChar = null,array $bindCounts = [])
Resolve Column expressions
public
string
getSqlExpression(array $expression,string $escapeChar = null,array $bindCounts = [])
Transforms an intermediate representation for an expression into a database system valid expression
public
string
getSqlTable(mixed $table,string $escapeChar = null)
Transform an intermediate representation of a schema/table into a
public
string
limit(string $sqlQuery,mixed $number)
Generates the SQL for LIMIT clause
public
string
onConflictUpdate(string $sqlQuery,array $conflictColumns,array $updateColumns)
Appends an ON CONFLICT (col, ...) DO UPDATE SET col = excluded.col
public
string
refreshMaterializedView(string $viewName,string $schemaName = null,bool $concurrent = false)
Generates SQL to refresh a materialized view. Supported by
public
static
registerCustomFunction(string $name,callable $customFunction)
Registers custom SQL functions
public
string
releaseSavepoint( string $name )
Generate SQL to release a savepoint
public
string
returning(string $sqlQuery,array $columns)
Returns a SQL statement extended with a RETURNING clause so the
public
string
rollbackSavepoint( string $name )
Generate SQL to rollback a savepoint
public
string
select( array $definition )
Builds a SELECT statement
public
bool
supportsAlterTable()
Checks whether the platform supports the full ALTER TABLE matrix:
public
bool
supportsMaterializedViews()
Checks whether the platform supports materialized views. Only PostgreSQL
public
bool
supportsOnConflictUpdate()
Checks whether the platform supports the ON CONFLICT (...) DO UPDATE
public
bool
supportsReleaseSavepoints()
Checks whether the platform supports releasing savepoints.
public
bool
supportsReturning()
Checks whether the platform supports the RETURNING clause. MySQL
public
bool
supportsSavepoints()
Checks whether the platform supports savepoints
protected
string
checkColumnType( ColumnInterface $column )
Checks the column type and if not string it returns the type reference
protected
string
checkColumnTypeSql( ColumnInterface $column )
Checks the column type and returns the updated SQL statement
protected
string
getCheckClause(CheckInterface $check,string $escapeChar = "`")
Builds a CHECK constraint clause from a CheckInterface, using the
protected
string
getColumnSize( ColumnInterface $column )
Returns the size of the column enclosed in parentheses
protected
string
getColumnSizeAndScale( ColumnInterface $column )
Returns the column size and scale enclosed in parentheses
protected
string
getGeneratedClause(ColumnInterface $column,bool $forceStored = false)
Builds the GENERATED ALWAYS AS (<expr>) VIRTUAL|STORED clause for a
protected
string
getIndexColumnList(IndexInterface $index,bool $wrapExpressions = true)
Builds the per-index parenthesized column list, honoring per-column
protected
string
getSqlExpressionAll(array $expression,string $escapeChar = null)
Resolve *
protected
string
getSqlExpressionBinaryOperations(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve binary operations expressions
protected
string
getSqlExpressionCase(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve CASE expressions
protected
string
getSqlExpressionCastValue(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve CAST of values
protected
string
getSqlExpressionConvertValue(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve CONVERT of values encodings
protected
string
getSqlExpressionFrom(mixed $expression,string $escapeChar = null)
Resolve a FROM clause
protected
string
getSqlExpressionFunctionCall(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve function calls
protected
string
getSqlExpressionGroupBy(mixed $expression,string $escapeChar = null,array $bindCounts = [])
Resolve a GROUP BY clause
protected
string
getSqlExpressionHaving(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve a HAVING clause
protected
string
getSqlExpressionJoins(mixed $expression,string $escapeChar = null,array $bindCounts = [])
Resolve a JOINs clause
protected
string
getSqlExpressionLimit(mixed $expression,string $escapeChar = null,array $bindCounts = [])
Resolve a LIMIT clause
protected
string
getSqlExpressionList(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve Lists
protected
string
getSqlExpressionObject(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve object expressions
protected
string
getSqlExpressionOrderBy(mixed $expression,string $escapeChar = null,array $bindCounts = [])
Resolve an ORDER BY clause
protected
string
getSqlExpressionQualified(array $expression,string $escapeChar = null)
Resolve qualified expressions
protected
string
getSqlExpressionScalar(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve Column expressions
protected
string
getSqlExpressionUnaryOperations(array $expression,string $escapeChar = null,array $bindCounts = [])
Resolve unary operations expressions
protected
string
getSqlExpressionWhere(mixed $expression,string $escapeChar = null,array $bindCounts = [])
Resolve a WHERE clause
protected
string
prepareColumnAlias(string $qualified,string $alias = null,string $escapeChar = null)
Prepares column for this RDBMS
protected
string
prepareQualified(string $column,string $domain = null,string $escapeChar = null)
Prepares qualified for this RDBMS
protected
string
prepareTable(string $table,string $schema = null,string $alias = null,string $escapeChar = null)
Prepares table for this RDBMS
Properties¶
protected
array
$customFunctions = []
protected
string
$escapeChar
protected
array
$guardedOperators = [...]
Dialect-specific operators that a concrete dialect must opt into
via supportedOperators; using one elsewhere throws.
protected
array
$supportedOperators = []
Subset of guardedOperators that this dialect emits. Overridden per
dialect.
Methods¶
createMaterializedView()¶
public function createMaterializedView(
string $viewName,
array $definition,
string $schemaName = null
): string;
Generates SQL to create a materialized view. Supported by PostgreSQL
(CREATE MATERIALIZED VIEW name AS <sql>). Other dialects inherit
this throw - MySQL and SQLite have no materialized-view concept.
createSavepoint()¶
Generate SQL to create a new savepoint
dropMaterializedView()¶
public function dropMaterializedView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a materialized view. Supported by PostgreSQL.
escape()¶
Escape identifiers
escapeSchema()¶
Escape Schema
forUpdate()¶
Returns a SQL modified with a FOR UPDATE clause. The optional modifier
appends a row-lock disposition keyword.
$sql = $dialect->forUpdate("SELECT * FROM robots");
echo $sql; // SELECT * FROM robots FOR UPDATE
$sql = $dialect->forUpdate(
"SELECT * FROM robots",
Dialect::LOCK_NOWAIT
);
echo $sql; // SELECT * FROM robots FOR UPDATE NOWAIT
$sql = $dialect->forUpdate(
"SELECT * FROM robots",
Dialect::LOCK_SKIP_LOCKED
);
echo $sql; // SELECT * FROM robots FOR UPDATE SKIP LOCKED
getColumnList()¶
final public function getColumnList(
array $columnList,
string $escapeChar = null,
array $bindCounts = []
): string;
Gets a list of columns with escaped identifiers
getCustomFunctions()¶
Returns registered functions
getSqlColumn()¶
final public function getSqlColumn(
mixed $column,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve Column expressions
getSqlExpression()¶
public function getSqlExpression(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Transforms an intermediate representation for an expression into a database system valid expression
getSqlTable()¶
Transform an intermediate representation of a schema/table into a database system valid expression
limit()¶
Generates the SQL for LIMIT clause
// SELECT * FROM robots LIMIT 10
echo $dialect->limit(
"SELECT * FROM robots",
10
);
// SELECT * FROM robots LIMIT 10 OFFSET 50
echo $dialect->limit(
"SELECT * FROM robots",
[10, 50]
);
onConflictUpdate()¶
public function onConflictUpdate(
string $sqlQuery,
array $conflictColumns,
array $updateColumns
): string;
Appends an ON CONFLICT (col, ...) DO UPDATE SET col = excluded.col
upsert clause to the supplied INSERT statement. The syntax is the
SQL standard form recognized by PostgreSQL (9.5+) and SQLite (3.24+).
MySQL overrides this method to throw because its ON DUPLICATE KEY
UPDATE has a different shape (deferred to parser item #23).
refreshMaterializedView()¶
public function refreshMaterializedView(
string $viewName,
string $schemaName = null,
bool $concurrent = false
): string;
Generates SQL to refresh a materialized view. Supported by
PostgreSQL. Pass concurrent = true for REFRESH MATERIALIZED VIEW
CONCURRENTLY ..., which avoids blocking concurrent SELECTs (requires
the view to have a unique index).
registerCustomFunction()¶
Registers custom SQL functions
releaseSavepoint()¶
Generate SQL to release a savepoint
returning()¶
Returns a SQL statement extended with a RETURNING clause so the
INSERT/UPDATE/DELETE returns rows. Supported by PostgreSQL and
SQLite 3.35+. Pass ["*"] for RETURNING *, or a list of column
names. The base implementation throws - MySQL inherits it because
MySQL has no RETURNING construct.
rollbackSavepoint()¶
Generate SQL to rollback a savepoint
select()¶
Builds a SELECT statement
supportsAlterTable()¶
Checks whether the platform supports the full ALTER TABLE matrix:
modifying existing columns and adding or dropping foreign keys, primary
keys, and check constraints. SQLite returns false - those operations
throw a dedicated Sqlite*NotSupported exception there (basic
ADD COLUMN remains available).
supportsMaterializedViews()¶
Checks whether the platform supports materialized views. Only PostgreSQL
returns true; createMaterializedView() throws on the other dialects.
supportsOnConflictUpdate()¶
Checks whether the platform supports the ON CONFLICT (...) DO UPDATE
upsert clause. MySQL returns false; onConflictUpdate() throws there.
supportsReleaseSavepoints()¶
Checks whether the platform supports releasing savepoints.
supportsReturning()¶
Checks whether the platform supports the RETURNING clause. MySQL
returns false; returning() throws there.
supportsSavepoints()¶
Checks whether the platform supports savepoints
checkColumnType()¶
Checks the column type and if not string it returns the type reference
checkColumnTypeSql()¶
Checks the column type and returns the updated SQL statement
getCheckClause()¶
Builds a CHECK constraint clause from a CheckInterface, using the
provided escape character for the constraint name (so each dialect
gets its native quoting). Returns the clause body - the dialect's
createTable() / addCheck() is expected to prefix ADD or place
the result on its own line as appropriate.
getColumnSize()¶
Returns the size of the column enclosed in parentheses
getColumnSizeAndScale()¶
Returns the column size and scale enclosed in parentheses
getGeneratedClause()¶
protected function getGeneratedClause(
ColumnInterface $column,
bool $forceStored = false
): string;
Builds the GENERATED ALWAYS AS (<expr>) VIRTUAL|STORED clause for a
generated/computed column. Returns an empty string when the column is
not generated. When forceStored is true the clause is always emitted
as STORED regardless of the column's isGenerationStored() flag -
PostgreSQL uses this since it only supports stored generated columns.
getIndexColumnList()¶
protected function getIndexColumnList(
IndexInterface $index,
bool $wrapExpressions = true
): string;
Builds the per-index parenthesized column list, honoring per-column
sort directions when the index declares any. Returns the bare
comma-separated getColumnList() output when no directions are set,
preserving the legacy rendering exactly. When directions are set,
each column is followed by ASC or DESC; trailing positions
absent from the directions array default to ASC.
getSqlExpressionAll()¶
final protected function getSqlExpressionAll(
array $expression,
string $escapeChar = null
): string;
Resolve *
getSqlExpressionBinaryOperations()¶
final protected function getSqlExpressionBinaryOperations(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve binary operations expressions
getSqlExpressionCase()¶
final protected function getSqlExpressionCase(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve CASE expressions
getSqlExpressionCastValue()¶
final protected function getSqlExpressionCastValue(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve CAST of values
getSqlExpressionConvertValue()¶
final protected function getSqlExpressionConvertValue(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve CONVERT of values encodings
getSqlExpressionFrom()¶
final protected function getSqlExpressionFrom(
mixed $expression,
string $escapeChar = null
): string;
Resolve a FROM clause
getSqlExpressionFunctionCall()¶
final protected function getSqlExpressionFunctionCall(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve function calls
getSqlExpressionGroupBy()¶
final protected function getSqlExpressionGroupBy(
mixed $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve a GROUP BY clause
getSqlExpressionHaving()¶
final protected function getSqlExpressionHaving(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve a HAVING clause
getSqlExpressionJoins()¶
final protected function getSqlExpressionJoins(
mixed $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve a JOINs clause
getSqlExpressionLimit()¶
final protected function getSqlExpressionLimit(
mixed $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve a LIMIT clause
getSqlExpressionList()¶
final protected function getSqlExpressionList(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve Lists
getSqlExpressionObject()¶
final protected function getSqlExpressionObject(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve object expressions
getSqlExpressionOrderBy()¶
final protected function getSqlExpressionOrderBy(
mixed $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve an ORDER BY clause
getSqlExpressionQualified()¶
final protected function getSqlExpressionQualified(
array $expression,
string $escapeChar = null
): string;
Resolve qualified expressions
getSqlExpressionScalar()¶
final protected function getSqlExpressionScalar(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve Column expressions
getSqlExpressionUnaryOperations()¶
final protected function getSqlExpressionUnaryOperations(
array $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve unary operations expressions
getSqlExpressionWhere()¶
final protected function getSqlExpressionWhere(
mixed $expression,
string $escapeChar = null,
array $bindCounts = []
): string;
Resolve a WHERE clause
prepareColumnAlias()¶
protected function prepareColumnAlias(
string $qualified,
string $alias = null,
string $escapeChar = null
): string;
Prepares column for this RDBMS
prepareQualified()¶
protected function prepareQualified(
string $column,
string $domain = null,
string $escapeChar = null
): string;
Prepares qualified for this RDBMS
prepareTable()¶
protected function prepareTable(
string $table,
string $schema = null,
string $alias = null,
string $escapeChar = null
): string;
Prepares table for this RDBMS
Db\DialectInterface¶
Interface Source on GitHub
Phalcon\Db\DialectInterface
Phalcon\Contracts\Db\DialectPhalcon\Db\DialectInterface
Uses Phalcon\Contracts\Db\Dialect
Db\Dialect\Mysql¶
Class Source on GitHub
Generates database specific SQL for the MySQL RDBMS
Phalcon\Db\DialectPhalcon\Db\Dialect\Mysql
Uses Phalcon\Db\CheckInterface · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Dialect · Phalcon\Db\DialectInterface · Phalcon\Db\Exception · Phalcon\Db\Exceptions\MissingDefinitionKey · Phalcon\Db\Exceptions\MysqlOnConflictNotSupported · Phalcon\Db\Exceptions\UnrecognizedDataType · Phalcon\Db\IndexInterface · Phalcon\Db\RawValue · Phalcon\Db\ReferenceInterface
Method Summary¶
public
string
addCheck(string $tableName,string $schemaName,CheckInterface $check)
Generates SQL to add a CHECK constraint to an existing table.
public
string
addColumn(string $tableName,string $schemaName,ColumnInterface $column)
Generates SQL to add a column to a table
public
string
addForeignKey(string $tableName,string $schemaName,ReferenceInterface $reference)
Generates SQL to add an index to a table
public
string
addIndex(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add an index to a table
public
string
addPrimaryKey(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add the primary key to a table
public
string
createTable(string $tableName,string $schemaName,array $definition)
Generates SQL to create a table
public
string
createView(string $viewName,array $definition,string $schemaName = null)
Generates SQL to create a view
public
string
describeColumns(string $table,string $schema = null)
Generates SQL describing a table
public
string
describeIndexes(string $table,string $schema = null)
Generates SQL to query indexes on a table
public
string
describeReferences(string $table,string $schema = null)
Generates SQL to query foreign keys on a table
public
string
dropCheck(string $tableName,string $schemaName,string $checkName)
Generates SQL to delete a CHECK constraint from a table
public
string
dropColumn(string $tableName,string $schemaName,string $columnName)
Generates SQL to delete a column from a table
public
string
dropForeignKey(string $tableName,string $schemaName,string $referenceName)
Generates SQL to delete a foreign key from a table
public
string
dropIndex(string $tableName,string $schemaName,string $indexName)
Generates SQL to delete an index from a table
public
string
dropPrimaryKey(string $tableName,string $schemaName)
Generates SQL to delete primary key from a table
public
string
dropTable(string $tableName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a table
public
string
dropView(string $viewName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a view
public
string
getColumnDefinition( ColumnInterface $column )
Gets the column name in MySQL
public
string
getForeignKeyChecks()
Generates SQL to check DB parameter FOREIGN_KEY_CHECKS.
public
string
listTables( string $schemaName = null )
List all tables in database
public
string
listViews( string $schemaName = null )
Generates the SQL to list all views of a schema or user
public
string
modifyColumn(string $tableName,string $schemaName,ColumnInterface $column,ColumnInterface $currentColumn = null)
Generates SQL to modify a column in a table
public
string
onConflictUpdate(string $sqlQuery,array $conflictColumns,array $updateColumns)
MySQL does not support the SQL-standard ON CONFLICT DO UPDATE
public
string
sharedLock(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a LOCK IN SHARE MODE clause. The modifier
public
bool
supportsOnConflictUpdate()
MySQL does not support the SQL-standard ON CONFLICT (...) DO UPDATE
public
string
tableExists(string $tableName,string $schemaName = null)
Generates SQL checking for the existence of a schema.table
public
string
tableOptions(string $table,string $schema = null)
Generates the SQL to describe the table creation options
public
string
truncateTable(string $tableName,string $schemaName)
Generates SQL to truncate a table
public
string
viewExists(string $viewName,string $schemaName = null)
Generates SQL checking for the existence of a schema.view
protected
string
getTableOptions( array $definition )
Generates SQL to add the table creation options
Properties¶
protected
string
$escapeChar = "`"
protected
array
$supportedOperators = [...]
Methods¶
addCheck()¶
Generates SQL to add a CHECK constraint to an existing table. Enforced by MySQL 8.0.16+.
addColumn()¶
public function addColumn(
string $tableName,
string $schemaName,
ColumnInterface $column
): string;
Generates SQL to add a column to a table
addForeignKey()¶
public function addForeignKey(
string $tableName,
string $schemaName,
ReferenceInterface $reference
): string;
Generates SQL to add an index to a table
addIndex()¶
Generates SQL to add an index to a table
addPrimaryKey()¶
public function addPrimaryKey(
string $tableName,
string $schemaName,
IndexInterface $index
): string;
Generates SQL to add the primary key to a table
createTable()¶
Generates SQL to create a table
createView()¶
public function createView(
string $viewName,
array $definition,
string $schemaName = null
): string;
Generates SQL to create a view
describeColumns()¶
Generates SQL describing a table
describeIndexes()¶
Generates SQL to query indexes on a table
describeReferences()¶
Generates SQL to query foreign keys on a table
dropCheck()¶
Generates SQL to delete a CHECK constraint from a table
dropColumn()¶
Generates SQL to delete a column from a table
dropForeignKey()¶
public function dropForeignKey(
string $tableName,
string $schemaName,
string $referenceName
): string;
Generates SQL to delete a foreign key from a table
dropIndex()¶
Generates SQL to delete an index from a table
dropPrimaryKey()¶
Generates SQL to delete primary key from a table
dropTable()¶
public function dropTable(
string $tableName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a table
dropView()¶
public function dropView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a view
getColumnDefinition()¶
Gets the column name in MySQL
getForeignKeyChecks()¶
Generates SQL to check DB parameter FOREIGN_KEY_CHECKS.
listTables()¶
List all tables in database
listViews()¶
Generates the SQL to list all views of a schema or user
modifyColumn()¶
public function modifyColumn(
string $tableName,
string $schemaName,
ColumnInterface $column,
ColumnInterface $currentColumn = null
): string;
Generates SQL to modify a column in a table
onConflictUpdate()¶
public function onConflictUpdate(
string $sqlQuery,
array $conflictColumns,
array $updateColumns
): string;
MySQL does not support the SQL-standard ON CONFLICT DO UPDATE
upsert syntax - it has its own INSERT ... ON DUPLICATE KEY UPDATE
which requires PHQL grammar work (deferred). The base helper is
overridden here to throw, preventing accidental emission of invalid
SQL on MySQL connections.
sharedLock()¶
Returns a SQL modified with a LOCK IN SHARE MODE clause. The modifier
argument is accepted for signature parity with the contract but is
silently ignored on MySQL - its legacy LOCK IN SHARE MODE syntax has
no NOWAIT / SKIP LOCKED variant. Callers needing those modifiers
should target PostgreSQL or stay on forUpdate().
$sql = $dialect->sharedLock("SELECT * FROM robots");
echo $sql; // SELECT * FROM robots LOCK IN SHARE MODE
supportsOnConflictUpdate()¶
MySQL does not support the SQL-standard ON CONFLICT (...) DO UPDATE
upsert clause; onConflictUpdate() throws.
tableExists()¶
Generates SQL checking for the existence of a schema.table
tableOptions()¶
Generates the SQL to describe the table creation options
truncateTable()¶
Generates SQL to truncate a table
viewExists()¶
Generates SQL checking for the existence of a schema.view
getTableOptions()¶
Generates SQL to add the table creation options
Db\Dialect\Postgresql¶
Class Source on GitHub
Generates database specific SQL for the PostgreSQL RDBMS
Phalcon\Db\DialectPhalcon\Db\Dialect\Postgresql
Uses Phalcon\Db\CheckInterface · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Dialect · Phalcon\Db\DialectInterface · Phalcon\Db\Exception · Phalcon\Db\Exceptions\MissingDefinitionKey · Phalcon\Db\Exceptions\ReturningRequiresColumn · Phalcon\Db\Exceptions\UnrecognizedDataType · Phalcon\Db\IndexInterface · Phalcon\Db\RawValue · Phalcon\Db\ReferenceInterface
Method Summary¶
public
string
addCheck(string $tableName,string $schemaName,CheckInterface $check)
Generates SQL to add a CHECK constraint to an existing table.
public
string
addColumn(string $tableName,string $schemaName,ColumnInterface $column)
Generates SQL to add a column to a table
public
string
addForeignKey(string $tableName,string $schemaName,ReferenceInterface $reference)
Generates SQL to add an index to a table
public
string
addIndex(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add an index to a table
public
string
addPrimaryKey(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add the primary key to a table
public
string
createMaterializedView(string $viewName,array $definition,string $schemaName = null)
Generates SQL to create a materialized view.
public
string
createTable(string $tableName,string $schemaName,array $definition)
Generates SQL to create a table
public
string
createView(string $viewName,array $definition,string $schemaName = null)
Generates SQL to create a view
public
string
describeColumns(string $table,string $schema = null)
Generates SQL describing a table
public
string
describeIndexes(string $table,string $schema = null)
Generates SQL to query indexes on a table
public
string
describeReferences(string $table,string $schema = null)
Generates SQL to query foreign keys on a table
public
string
dropCheck(string $tableName,string $schemaName,string $checkName)
Generates SQL to delete a CHECK constraint from a table
public
string
dropColumn(string $tableName,string $schemaName,string $columnName)
Generates SQL to delete a column from a table
public
string
dropForeignKey(string $tableName,string $schemaName,string $referenceName)
Generates SQL to delete a foreign key from a table
public
string
dropIndex(string $tableName,string $schemaName,string $indexName)
Generates SQL to delete an index from a table
public
string
dropMaterializedView(string $viewName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a materialized view.
public
string
dropPrimaryKey(string $tableName,string $schemaName)
Generates SQL to delete primary key from a table
public
string
dropTable(string $tableName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a table
public
string
dropView(string $viewName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a view
public
string
getColumnDefinition( ColumnInterface $column )
Gets the column name in PostgreSQL
public
string
listTables( string $schemaName = null )
List all tables in database
public
string
listViews( string $schemaName = null )
Generates the SQL to list all views of a schema or user
public
string
modifyColumn(string $tableName,string $schemaName,ColumnInterface $column,ColumnInterface $currentColumn = null)
Generates SQL to modify a column in a table
public
string
refreshMaterializedView(string $viewName,string $schemaName = null,bool $concurrent = false)
Generates SQL to refresh a materialized view. When concurrent is
public
string
returning(string $sqlQuery,array $columns)
Appends a RETURNING clause to the supplied INSERT/UPDATE/DELETE
public
string
sharedLock(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a FOR SHARE clause - PostgreSQL's
public
bool
supportsMaterializedViews()
PostgreSQL supports materialized views (CREATE MATERIALIZED VIEW).
public
bool
supportsReturning()
PostgreSQL supports the RETURNING clause.
public
string
tableExists(string $tableName,string $schemaName = null)
Generates SQL checking for the existence of a schema.table
public
string
tableOptions(string $table,string $schema = null)
Generates the SQL to describe the table creation options
public
string
truncateTable(string $tableName,string $schemaName)
Generates SQL to truncate a table
public
string
viewExists(string $viewName,string $schemaName = null)
Generates SQL checking for the existence of a schema.view
protected
string
castDefault( ColumnInterface $column )
protected
string
getTableOptions( array $definition )
Properties¶
protected
string
$escapeChar = "\""
protected
array
$supportedOperators = [...]
Methods¶
addCheck()¶
Generates SQL to add a CHECK constraint to an existing table.
addColumn()¶
public function addColumn(
string $tableName,
string $schemaName,
ColumnInterface $column
): string;
Generates SQL to add a column to a table
addForeignKey()¶
public function addForeignKey(
string $tableName,
string $schemaName,
ReferenceInterface $reference
): string;
Generates SQL to add an index to a table
addIndex()¶
Generates SQL to add an index to a table
addPrimaryKey()¶
public function addPrimaryKey(
string $tableName,
string $schemaName,
IndexInterface $index
): string;
Generates SQL to add the primary key to a table
createMaterializedView()¶
public function createMaterializedView(
string $viewName,
array $definition,
string $schemaName = null
): string;
Generates SQL to create a materialized view.
createTable()¶
Generates SQL to create a table
createView()¶
public function createView(
string $viewName,
array $definition,
string $schemaName = null
): string;
Generates SQL to create a view
describeColumns()¶
Generates SQL describing a table
describeIndexes()¶
Generates SQL to query indexes on a table
describeReferences()¶
Generates SQL to query foreign keys on a table
dropCheck()¶
Generates SQL to delete a CHECK constraint from a table
dropColumn()¶
Generates SQL to delete a column from a table
dropForeignKey()¶
public function dropForeignKey(
string $tableName,
string $schemaName,
string $referenceName
): string;
Generates SQL to delete a foreign key from a table
dropIndex()¶
Generates SQL to delete an index from a table
dropMaterializedView()¶
public function dropMaterializedView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a materialized view.
dropPrimaryKey()¶
Generates SQL to delete primary key from a table
dropTable()¶
public function dropTable(
string $tableName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a table
dropView()¶
public function dropView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a view
getColumnDefinition()¶
Gets the column name in PostgreSQL
listTables()¶
List all tables in database
listViews()¶
Generates the SQL to list all views of a schema or user
modifyColumn()¶
public function modifyColumn(
string $tableName,
string $schemaName,
ColumnInterface $column,
ColumnInterface $currentColumn = null
): string;
Generates SQL to modify a column in a table
refreshMaterializedView()¶
public function refreshMaterializedView(
string $viewName,
string $schemaName = null,
bool $concurrent = false
): string;
Generates SQL to refresh a materialized view. When concurrent is
true, emits REFRESH MATERIALIZED VIEW CONCURRENTLY ... (avoids
blocking concurrent SELECTs; requires a unique index on the view).
returning()¶
Appends a RETURNING clause to the supplied INSERT/UPDATE/DELETE
statement. Pass ["*"] for RETURNING *, or a list of column names.
sharedLock()¶
Returns a SQL modified with a FOR SHARE clause - PostgreSQL's
equivalent of MySQL's LOCK IN SHARE MODE. The optional modifier
appends a row-lock disposition keyword (pass Dialect::LOCK_NOWAIT
or Dialect::LOCK_SKIP_LOCKED).
echo $dialect->sharedLock("SELECT * FROM robots");
// SELECT * FROM robots FOR SHARE
echo $dialect->sharedLock(
"SELECT * FROM robots",
Dialect::LOCK_NOWAIT
);
// SELECT * FROM robots FOR SHARE NOWAIT
supportsMaterializedViews()¶
PostgreSQL supports materialized views (CREATE MATERIALIZED VIEW).
supportsReturning()¶
PostgreSQL supports the RETURNING clause.
tableExists()¶
Generates SQL checking for the existence of a schema.table
tableOptions()¶
Generates the SQL to describe the table creation options
truncateTable()¶
Generates SQL to truncate a table
viewExists()¶
Generates SQL checking for the existence of a schema.view
castDefault()¶
getTableOptions()¶
Db\Dialect\Sqlite¶
Class Source on GitHub
Generates database specific SQL for the SQLite RDBMS
Phalcon\Db\DialectPhalcon\Db\Dialect\Sqlite
Uses Phalcon\Db\CheckInterface · Phalcon\Db\Column · Phalcon\Db\ColumnInterface · Phalcon\Db\Dialect · Phalcon\Db\DialectInterface · Phalcon\Db\Exception · Phalcon\Db\Exceptions\MissingDefinitionKey · Phalcon\Db\Exceptions\ReturningRequiresColumn · Phalcon\Db\Exceptions\SqliteAlterCheckNotSupported · Phalcon\Db\Exceptions\SqliteAlterColumnNotSupported · Phalcon\Db\Exceptions\SqliteAlterForeignKeyNotSupported · Phalcon\Db\Exceptions\SqliteAlterPrimaryKeyNotSupported · Phalcon\Db\Exceptions\SqliteDropCheckNotSupported · Phalcon\Db\Exceptions\SqliteDropForeignKeyNotSupported · Phalcon\Db\Exceptions\SqliteDropPrimaryKeyNotSupported · Phalcon\Db\Exceptions\UnrecognizedDataType · Phalcon\Db\IndexInterface · Phalcon\Db\RawValue · Phalcon\Db\ReferenceInterface
Method Summary¶
public
string
addCheck(string $tableName,string $schemaName,CheckInterface $check)
SQLite cannot ALTER an existing table to add a CHECK constraint;
public
string
addColumn(string $tableName,string $schemaName,ColumnInterface $column)
Generates SQL to add a column to a table
public
string
addForeignKey(string $tableName,string $schemaName,ReferenceInterface $reference)
Generates SQL to add an index to a table
public
string
addIndex(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add an index to a table
public
string
addPrimaryKey(string $tableName,string $schemaName,IndexInterface $index)
Generates SQL to add the primary key to a table
public
string
createTable(string $tableName,string $schemaName,array $definition)
Generates SQL to create a table
public
string
createView(string $viewName,array $definition,string $schemaName = null)
Generates SQL to create a view
public
string
describeColumns(string $table,string $schema = null)
Generates SQL describing a table
public
string
describeIndex( string $index )
Generates SQL to query indexes detail on a table
public
string
describeIndexes(string $table,string $schema = null)
Generates SQL to query indexes on a table
public
string
describeReferences(string $table,string $schema = null)
Generates SQL to query foreign keys on a table
public
string
dropCheck(string $tableName,string $schemaName,string $checkName)
SQLite cannot DROP a CHECK constraint from an existing table.
public
string
dropColumn(string $tableName,string $schemaName,string $columnName)
Generates SQL to delete a column from a table.
public
string
dropForeignKey(string $tableName,string $schemaName,string $referenceName)
Generates SQL to delete a foreign key from a table
public
string
dropIndex(string $tableName,string $schemaName,string $indexName)
Generates SQL to delete an index from a table
public
string
dropPrimaryKey(string $tableName,string $schemaName)
Generates SQL to delete primary key from a table
public
string
dropTable(string $tableName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a table
public
string
dropView(string $viewName,string $schemaName = null,bool $ifExists = true)
Generates SQL to drop a view
public
string
forUpdate(string $sqlQuery,string $modifier = "")
Returns a SQL modified with a FOR UPDATE clause. SQLite has no
public
string
getColumnDefinition( ColumnInterface $column )
Gets the column name in SQLite
public
string
listIndexesSql(string $table,string $schema = null,string $keyName = null)
Generates the SQL to get query list of indexes
public
string
listTables( string $schemaName = null )
List all tables in database
public
string
listViews( string $schemaName = null )
Generates the SQL to list all views of a schema or user
public
string
modifyColumn(string $tableName,string $schemaName,ColumnInterface $column,ColumnInterface $currentColumn = null)
Generates SQL to modify a column in a table
public
string
returning(string $sqlQuery,array $columns)
Appends a RETURNING clause to the supplied INSERT/UPDATE/DELETE
public
string
sharedLock(string $sqlQuery,string $modifier = "")
SQLite has no row-level shared-lock construct, so the original query
public
bool
supportsAlterTable()
SQLite cannot modify existing columns or add/drop foreign keys, primary
public
bool
supportsReturning()
SQLite (3.35+) supports the RETURNING clause.
public
string
tableExists(string $tableName,string $schemaName = null)
Generates SQL checking for the existence of a schema.table
public
string
tableOptions(string $table,string $schema = null)
Generates the SQL to describe the table creation options
public
string
truncateTable(string $tableName,string $schemaName)
Generates SQL to truncate a table
public
string
viewExists(string $viewName,string $schemaName = null)
Generates SQL checking for the existence of a schema.view
Properties¶
protected
string
$escapeChar = "\""
protected
array
$supportedOperators = [...]
Methods¶
addCheck()¶
SQLite cannot ALTER an existing table to add a CHECK constraint; the constraint must be declared at CREATE TABLE time.
addColumn()¶
public function addColumn(
string $tableName,
string $schemaName,
ColumnInterface $column
): string;
Generates SQL to add a column to a table
addForeignKey()¶
public function addForeignKey(
string $tableName,
string $schemaName,
ReferenceInterface $reference
): string;
Generates SQL to add an index to a table
addIndex()¶
Generates SQL to add an index to a table
addPrimaryKey()¶
public function addPrimaryKey(
string $tableName,
string $schemaName,
IndexInterface $index
): string;
Generates SQL to add the primary key to a table
createTable()¶
Generates SQL to create a table
createView()¶
public function createView(
string $viewName,
array $definition,
string $schemaName = null
): string;
Generates SQL to create a view
describeColumns()¶
Generates SQL describing a table
describeIndex()¶
Generates SQL to query indexes detail on a table
describeIndexes()¶
Generates SQL to query indexes on a table
describeReferences()¶
Generates SQL to query foreign keys on a table
dropCheck()¶
SQLite cannot DROP a CHECK constraint from an existing table.
dropColumn()¶
Generates SQL to delete a column from a table.
SQLite 3.35+ supports ALTER TABLE ... DROP COLUMN ... directly. On
older versions the server rejects the statement at execution time;
cphalcon no longer pre-empts that rejection at the dialect level so
callers on 3.35+ can use the feature.
dropForeignKey()¶
public function dropForeignKey(
string $tableName,
string $schemaName,
string $referenceName
): string;
Generates SQL to delete a foreign key from a table
dropIndex()¶
Generates SQL to delete an index from a table
dropPrimaryKey()¶
Generates SQL to delete primary key from a table
dropTable()¶
public function dropTable(
string $tableName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a table
dropView()¶
public function dropView(
string $viewName,
string $schemaName = null,
bool $ifExists = true
): string;
Generates SQL to drop a view
forUpdate()¶
Returns a SQL modified with a FOR UPDATE clause. SQLite has no
row-level locking, so the original query is returned unchanged
regardless of the modifier argument (NOWAIT / SKIP LOCKED are
silently ignored).
getColumnDefinition()¶
Gets the column name in SQLite
listIndexesSql()¶
public function listIndexesSql(
string $table,
string $schema = null,
string $keyName = null
): string;
Generates the SQL to get query list of indexes
listTables()¶
List all tables in database
listViews()¶
Generates the SQL to list all views of a schema or user
modifyColumn()¶
public function modifyColumn(
string $tableName,
string $schemaName,
ColumnInterface $column,
ColumnInterface $currentColumn = null
): string;
Generates SQL to modify a column in a table
returning()¶
Appends a RETURNING clause to the supplied INSERT/UPDATE/DELETE
statement. Supported by SQLite 3.35+. Pass ["*"] for RETURNING *,
or a list of column names.
sharedLock()¶
SQLite has no row-level shared-lock construct, so the original query
is returned unchanged regardless of the modifier argument.
supportsAlterTable()¶
SQLite cannot modify existing columns or add/drop foreign keys, primary
keys, or check constraints through ALTER TABLE; those operations throw
a dedicated Sqlite*NotSupported exception.
supportsReturning()¶
SQLite (3.35+) supports the RETURNING clause.
tableExists()¶
Generates SQL checking for the existence of a schema.table
tableOptions()¶
Generates the SQL to describe the table creation options
truncateTable()¶
Generates SQL to truncate a table
viewExists()¶
Generates SQL checking for the existence of a schema.view
Db\Enum¶
Class Source on GitHub
Constants for Phalcon\Db
Phalcon\Db\Enum
Constants¶
int
FETCH_ASSOC = \PDO::FETCH_ASSOC
int
FETCH_BOTH = \PDO::FETCH_BOTH
int
FETCH_BOUND = \PDO::FETCH_BOUND
int
FETCH_CLASS = \PDO::FETCH_CLASS
int
FETCH_CLASSTYPE = \PDO::FETCH_CLASSTYPE
int
FETCH_COLUMN = \PDO::FETCH_COLUMN
int
FETCH_DEFAULT = \PDO::FETCH_DEFAULT
int
FETCH_FUNC = \PDO::FETCH_FUNC
int
FETCH_GROUP = \PDO::FETCH_GROUP
int
FETCH_INTO = \PDO::FETCH_INTO
int
FETCH_KEY_PAIR = \PDO::FETCH_KEY_PAIR
int
FETCH_LAZY = \PDO::FETCH_LAZY
int
FETCH_NAMED = \PDO::FETCH_NAMED
int
FETCH_NUM = \PDO::FETCH_NUM
int
FETCH_OBJ = \PDO::FETCH_OBJ
int
FETCH_ORI_NEXT = \PDO::FETCH_ORI_NEXT
int
FETCH_PROPS_LATE = \PDO::FETCH_PROPS_LATE
int
FETCH_SERIALIZE = \PDO::FETCH_SERIALIZE
int
FETCH_UNIQUE = \PDO::FETCH_UNIQUE
Db\Exception¶
Class Source on GitHub
Exceptions thrown in Phalcon\Db will use this class
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\CannotInsertWithoutDataPhalcon\Db\Exceptions\CannotPrepareStatementPhalcon\Db\Exceptions\CheckExpressionRequiredPhalcon\Db\Exceptions\ColumnTypeRejectsAutoIncrementPhalcon\Db\Exceptions\ColumnTypeRejectsScalePhalcon\Db\Exceptions\ColumnTypeRequiredPhalcon\Db\Exceptions\ConflictTargetColumnRequiredPhalcon\Db\Exceptions\ConflictUpdateColumnRequiredPhalcon\Db\Exceptions\ForeignKeyColumnsRequiredPhalcon\Db\Exceptions\GeneratedAutoIncrementConflictPhalcon\Db\Exceptions\GeneratedDefaultConflictPhalcon\Db\Exceptions\IncompleteBindTypesPhalcon\Db\Exceptions\InvalidBindParameterPhalcon\Db\Exceptions\InvalidCheckExpressionPhalcon\Db\Exceptions\InvalidDialectClassPhalcon\Db\Exceptions\InvalidGenerationExpressionPhalcon\Db\Exceptions\InvalidGroupByExpressionPhalcon\Db\Exceptions\InvalidIndexColumnsPhalcon\Db\Exceptions\InvalidIndexDirectionsPhalcon\Db\Exceptions\InvalidIndexWherePhalcon\Db\Exceptions\InvalidListExpressionPhalcon\Db\Exceptions\InvalidOrderByExpressionPhalcon\Db\Exceptions\InvalidSqlExpressionPhalcon\Db\Exceptions\InvalidSqlExpressionTypePhalcon\Db\Exceptions\InvalidUnaryExpressionPhalcon\Db\Exceptions\InvalidWhereConditionsPhalcon\Db\Exceptions\InvalidWkbPhalcon\Db\Exceptions\MatchedParameterNotFoundPhalcon\Db\Exceptions\MaterializedViewsNotSupportedPhalcon\Db\Exceptions\MissingDefinitionKeyPhalcon\Db\Exceptions\MissingForeignKeyChecksPhalcon\Db\Exceptions\MissingSqliteDatabasePhalcon\Db\Exceptions\MysqlOnConflictNotSupportedPhalcon\Db\Exceptions\NestedTransactionChangeBlockedPhalcon\Db\Exceptions\NoActiveTransactionPhalcon\Db\Exceptions\ReferencedColumnCountMismatchPhalcon\Db\Exceptions\ReferencedColumnsRequiredPhalcon\Db\Exceptions\ReferencedTableRequiredPhalcon\Db\Exceptions\ReturningNotSupportedPhalcon\Db\Exceptions\ReturningRequiresColumnPhalcon\Db\Exceptions\SavepointsNotSupportedPhalcon\Db\Exceptions\SqliteAlterCheckNotSupportedPhalcon\Db\Exceptions\SqliteAlterColumnNotSupportedPhalcon\Db\Exceptions\SqliteAlterForeignKeyNotSupportedPhalcon\Db\Exceptions\SqliteAlterPrimaryKeyNotSupportedPhalcon\Db\Exceptions\SqliteDropCheckNotSupportedPhalcon\Db\Exceptions\SqliteDropForeignKeyNotSupportedPhalcon\Db\Exceptions\SqliteDropPrimaryKeyNotSupportedPhalcon\Db\Exceptions\TableMustHaveColumnPhalcon\Db\Exceptions\UnrecognizedDataTypePhalcon\Db\Exceptions\UnsupportedOperatorPhalcon\Db\Exceptions\UpdateFieldCountMismatch
Db\Exceptions\CannotInsertWithoutData¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\CannotInsertWithoutData
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\CannotPrepareStatement¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\CannotPrepareStatement
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\CheckExpressionRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\CheckExpressionRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ColumnTypeRejectsAutoIncrement¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ColumnTypeRejectsAutoIncrement
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ColumnTypeRejectsScale¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ColumnTypeRejectsScale
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ColumnTypeRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ColumnTypeRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ConflictTargetColumnRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ConflictTargetColumnRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ConflictUpdateColumnRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ConflictUpdateColumnRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ForeignKeyColumnsRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ForeignKeyColumnsRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\GeneratedAutoIncrementConflict¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\GeneratedAutoIncrementConflict
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\GeneratedDefaultConflict¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\GeneratedDefaultConflict
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\IncompleteBindTypes¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\IncompleteBindTypes
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidBindParameter¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidBindParameter
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidCheckExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidCheckExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidDialectClass¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidDialectClass
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidGenerationExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidGenerationExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidGroupByExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidGroupByExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidIndexColumns¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidIndexColumns
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidIndexDirections¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidIndexDirections
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidIndexWhere¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidIndexWhere
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidListExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidListExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidOrderByExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidOrderByExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidSqlExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidSqlExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidSqlExpressionType¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidSqlExpressionType
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidUnaryExpression¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidUnaryExpression
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidWhereConditions¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidWhereConditions
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\InvalidWkb¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\InvalidWkb
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MatchedParameterNotFound¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MatchedParameterNotFound
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MaterializedViewsNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MaterializedViewsNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MissingDefinitionKey¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MissingDefinitionKey
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MissingForeignKeyChecks¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MissingForeignKeyChecks
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MissingSqliteDatabase¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MissingSqliteDatabase
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\MysqlOnConflictNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\MysqlOnConflictNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\NestedTransactionChangeBlocked¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\NestedTransactionChangeBlocked
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\NoActiveTransaction¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\NoActiveTransaction
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ReferencedColumnCountMismatch¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ReferencedColumnCountMismatch
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ReferencedColumnsRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ReferencedColumnsRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ReferencedTableRequired¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ReferencedTableRequired
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ReturningNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ReturningNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\ReturningRequiresColumn¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\ReturningRequiresColumn
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SavepointsNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SavepointsNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteAlterCheckNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteAlterCheckNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteAlterColumnNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteAlterColumnNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteAlterForeignKeyNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteAlterForeignKeyNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteAlterPrimaryKeyNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteAlterPrimaryKeyNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteDropCheckNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteDropCheckNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteDropForeignKeyNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteDropForeignKeyNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\SqliteDropPrimaryKeyNotSupported¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\SqliteDropPrimaryKeyNotSupported
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\TableMustHaveColumn¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\TableMustHaveColumn
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\UnrecognizedDataType¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\UnrecognizedDataType
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\UnsupportedOperator¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\UnsupportedOperator
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Exceptions\UpdateFieldCountMismatch¶
Class Source on GitHub
\ExceptionPhalcon\Db\ExceptionPhalcon\Db\Exceptions\UpdateFieldCountMismatch
Uses Phalcon\Db\Exception
Method Summary¶
Methods¶
__construct()¶
Db\Geometry\AbstractGeometry¶
Abstract Source on GitHub
Phalcon\Db\Geometry\AbstractGeometry- implementsPhalcon\Db\Geometry\GeometryInterface
Method Summary¶
Properties¶
protected
int
$srid = 0
Methods¶
__toString()¶
getSrid()¶
getType()¶
toWkt()¶
Db\Geometry\GeometryCollection¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\GeometryCollection
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $geometries,int $srid = 0)
public
array
getGeometries()
public
int
getType()
public
string
toWkt()
Properties¶
protected
array
$geometries
Methods¶
__construct()¶
getGeometries()¶
getType()¶
toWkt()¶
Db\Geometry\GeometryInterface¶
Interface Source on GitHub
Phalcon\Db\Geometry\GeometryInterface
Phalcon\Contracts\Db\Geometry\GeometryPhalcon\Db\Geometry\GeometryInterface
Uses Phalcon\Contracts\Db\Geometry\Geometry
Db\Geometry\LineString¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\LineString
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $points,int $srid = 0)
public
array
getPoints()
public
int
getType()
public
string
pointsWkt()
public
string
toWkt()
Properties¶
protected
array
$points
Methods¶
__construct()¶
getPoints()¶
getType()¶
pointsWkt()¶
toWkt()¶
Db\Geometry\MultiLineString¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\MultiLineString
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $lineStrings,int $srid = 0)
public
array
getLineStrings()
public
int
getType()
public
string
toWkt()
Properties¶
protected
array
$lineStrings
Methods¶
__construct()¶
getLineStrings()¶
getType()¶
toWkt()¶
Db\Geometry\MultiPoint¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\MultiPoint
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $points,int $srid = 0)
public
array
getPoints()
public
int
getType()
public
string
toWkt()
Properties¶
protected
array
$points
Methods¶
__construct()¶
getPoints()¶
getType()¶
toWkt()¶
Db\Geometry\MultiPolygon¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\MultiPolygon
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $polygons,int $srid = 0)
public
array
getPolygons()
public
int
getType()
public
string
toWkt()
Properties¶
protected
array
$polygons
Methods¶
__construct()¶
getPolygons()¶
getType()¶
toWkt()¶
Db\Geometry\Point¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\Point
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(double $x,double $y,int $srid = 0)
public
string
coordsWkt()
public
int
getType()
public
double
getX()
public
double
getY()
public
string
toWkt()
Properties¶
protected
float
$x
protected
float
$y
Methods¶
__construct()¶
coordsWkt()¶
getType()¶
getX()¶
getY()¶
toWkt()¶
Db\Geometry\Polygon¶
Class Source on GitHub
Phalcon\Db\Geometry\AbstractGeometryPhalcon\Db\Geometry\Polygon
Uses Phalcon\Db\Column
Method Summary¶
public
__construct(array $rings,int $srid = 0)
public
array
getRings()
public
int
getType()
public
string
ringsWkt()
public
string
toWkt()
Properties¶
protected
array
$rings
Methods¶
__construct()¶
getRings()¶
getType()¶
ringsWkt()¶
toWkt()¶
Db\Geometry\WkbParser¶
Class Source on GitHub
Decodes a spatial column value into a geometry value object.
Handles MySQL's internal format (4-byte little-endian SRID prefix followed by standard OGC WKB) and PostGIS EWKB returned as a hex string. 2D only: any Z/M ordinates are read past and discarded.
Phalcon\Db\Geometry\WkbParser
Uses Phalcon\Db\Exceptions\InvalidWkb
Method Summary¶
public
GeometryInterface
parse( string $raw )
protected
int
readByte()
protected
double
readDouble( bool $little )
protected
GeometryInterface
readGeometry( int $outerSrid )
protected
Point
readPoint(bool $little,bool $hasZ,bool $hasM,int $srid)
protected
array
readPointList(bool $little,bool $hasZ,bool $hasM)
protected
array
readRingList(bool $little,bool $hasZ,bool $hasM)
protected
int
readUint32( bool $little )
protected
void
skipExtraOrdinates(bool $little,bool $hasZ,bool $hasM)
Properties¶
protected
string
$buffer = ""
protected
int
$length = 0
protected
int
$position = 0
Methods¶
parse()¶
readByte()¶
readDouble()¶
readGeometry()¶
readPoint()¶
readPointList()¶
readRingList()¶
readUint32()¶
skipExtraOrdinates()¶
Db\Index¶
Class Source on GitHub
Allows to define indexes to be used on tables. Indexes are a common way to enhance database performance. An index allows the database server to find and retrieve specific rows much faster than it could do without an index.
The constructor accepts either the legacy positional form (a plain array
of column names) or a definition-array form (an associative array with a
columns key); the latter is the path used by features such as
invisible (MySQL 8.0+) and is the form that future per-index modifiers
will extend.
// Legacy positional form
$unique = new \Phalcon\Db\Index(
'column_UNIQUE',
[
'column',
],
'UNIQUE'
);
$primary = new \Phalcon\Db\Index(
'PRIMARY',
[
'column',
]
);
// Definition-array form (MySQL 8.0+ invisible index)
$hidden = new \Phalcon\Db\Index(
'idx_hidden',
[
'columns' => ['col1'],
'type' => '',
'invisible' => true,
]
);
$connection->addIndex("robots", null, $unique);
$connection->addIndex("robots", null, $primary);
$connection->addIndex("robots", null, $hidden);
Phalcon\Db\Index- implementsPhalcon\Db\IndexInterface
Uses Phalcon\Db\Exceptions\InvalidIndexColumns · Phalcon\Db\Exceptions\InvalidIndexDirections · Phalcon\Db\Exceptions\InvalidIndexWhere
Method Summary¶
public
__construct(string $name,array $columnsOrDefinition,string $type = "")
Phalcon\Db\Index constructor.
public
array
getColumns()
Index columns
public
array
getDirections()
Returns the per-column sort directions array (ASC / DESC).
public
string
getName()
Index name
public
string
getType()
Index type
public
string
getWhere()
Returns the partial-index WHERE predicate, or an empty string when
public
bool
isConcurrent()
Whether the index is built CONCURRENTLY (PostgreSQL only). MySQL
public
bool
isInvisible()
Whether the index is declared INVISIBLE (MySQL 8.0+). Invisible
Properties¶
protected
array
$columns
Index columns
protected
bool
$concurrent = false
Whether to build the index without taking a strong lock that blocks
writes - emits CONCURRENTLY between INDEX and the index name on
PostgreSQL (CREATE INDEX CONCURRENTLY name ON ...). MySQL and
SQLite have no equivalent and ignore the flag.
protected
array
$directions = []
Per-column sort directions (ASC / DESC). Empty array means
"emit no per-column direction" - preserves the legacy plain
(col1, col2) rendering. When populated, entries shorter than
the columns list default to ASC for the missing positions.
protected
bool
$invisible = false
Whether the index is declared INVISIBLE (MySQL 8.0+). Invisible
indexes are ignored by the optimizer - useful for testing what
happens when an index is removed before actually dropping it.
PostgreSQL and SQLite have no equivalent and ignore the flag.
protected
string
$name
Index name
protected
string
$type = ""
Index type
protected
string
$where = ""
Optional partial-index WHERE predicate. Supported by PostgreSQL and
SQLite (CREATE INDEX ... WHERE <expr>); MySQL has no partial-index
concept and its dialect ignores this value. Empty string means no
predicate.
Methods¶
__construct()¶
Phalcon\Db\Index constructor.
Accepts either the legacy positional form (name, columns, type) or a
definition-array form (name, ["columns" => [...], "type" => "...",
"invisible" => true, ...]). Detection is based on the presence of a
columns key in the second argument; when present, the third
positional type argument is ignored in favor of the definition.
getColumns()¶
Index columns
getDirections()¶
Returns the per-column sort directions array (ASC / DESC).
Empty array means the index was declared without explicit per-column
directions and dialects emit the columns plainly. When populated,
entries are aligned with getColumns(); missing trailing positions
default to ASC at emission time.
getName()¶
Index name
getType()¶
Index type
getWhere()¶
Returns the partial-index WHERE predicate, or an empty string when
the index has none. Supported by PostgreSQL and SQLite; ignored by
the MySQL dialect (MySQL has no partial-index feature).
isConcurrent()¶
Whether the index is built CONCURRENTLY (PostgreSQL only). MySQL
and SQLite have no equivalent and ignore the flag.
isInvisible()¶
Whether the index is declared INVISIBLE (MySQL 8.0+). Invisible
indexes are ignored by the optimizer but still maintained, so they
can be flipped back to visible without a rebuild.
Db\IndexInterface¶
Interface Source on GitHub
Phalcon\Db\IndexInterface
Phalcon\Contracts\Db\IndexPhalcon\Db\IndexInterface
Uses Phalcon\Contracts\Db\Index
Db\Profiler¶
Class Source on GitHub
Instances of Phalcon\Db can generate execution profiles on SQL statements sent to the relational database. Profiled information includes execution time in milliseconds. This helps you to identify bottlenecks in your applications.
use Phalcon\Db\Profiler;
use Phalcon\Events\Event;
use Phalcon\Events\Manager;
$profiler = new Profiler();
$eventsManager = new Manager();
$eventsManager->attach(
"db",
function (Event $event, $connection) use ($profiler) {
if ($event->getType() === "beforeQuery") {
$sql = $connection->getSQLStatement();
// Start a profile with the active connection
$profiler->startProfile($sql);
}
if ($event->getType() === "afterQuery") {
// Stop the active profile
$profiler->stopProfile();
}
}
);
// Set the event manager on the connection
$connection->setEventsManager($eventsManager);
$sql = "SELECT buyer_name, quantity, product_name
FROM buyers LEFT JOIN products ON
buyers.pid=products.id";
// Execute a SQL statement
$connection->query($sql);
// Get the last profile in the profiler
$profile = $profiler->getLastProfile();
echo "SQL Statement: ", $profile->getSQLStatement(), "\n";
echo "Start Time: ", $profile->getInitialTime(), "\n";
echo "Final Time: ", $profile->getFinalTime(), "\n";
echo "Total Elapsed Time: ", $profile->getTotalElapsedSeconds(), "\n";
Phalcon\Db\Profiler
Uses Phalcon\Db\Profiler\Item
Method Summary¶
public
Item
getLastProfile()
Returns the last profile executed in the profiler
public
int
getMaxProfiles()
Returns the configured maximum number of retained profiles
public
int
getNumberTotalStatements()
Returns the total number of SQL statements processed
public
Item[]
getProfiles()
Returns all the processed profiles
public
double
getTotalElapsedMilliseconds()
Returns the total time in milliseconds spent by the profiles
public
double
getTotalElapsedNanoseconds()
Returns the total time in nanoseconds spent by the profiles
public
double
getTotalElapsedSeconds()
Returns the total time in seconds spent by the profiles
public
static
reset()
Resets the profiler, cleaning up all the profiles
public
static
setMaxProfiles( int $maxProfiles )
Sets the maximum number of retained profiles. 0 disables the cap
public
static
startProfile(string $sqlStatement,array $sqlVariables = [],array $sqlBindTypes = [])
Starts the profile of a SQL sentence
public
static
stopProfile()
Stops the active profile
Properties¶
protected
Item
$activeProfile
Active Item
protected
Item[]
$allProfiles
All the Items in the active profile
protected
int
$maxProfiles = 0
Maximum number of profiles to retain. 0 (default) keeps the
original unbounded behavior; a positive value drops the oldest
profile FIFO before a new one is appended.
protected
float
$totalNanoseconds = 0
Total time spent by all profiles to complete in nanoseconds
Methods¶
getLastProfile()¶
Returns the last profile executed in the profiler
getMaxProfiles()¶
Returns the configured maximum number of retained profiles (0 = unlimited)
getNumberTotalStatements()¶
Returns the total number of SQL statements processed
getProfiles()¶
Returns all the processed profiles
getTotalElapsedMilliseconds()¶
Returns the total time in milliseconds spent by the profiles
getTotalElapsedNanoseconds()¶
Returns the total time in nanoseconds spent by the profiles
getTotalElapsedSeconds()¶
Returns the total time in seconds spent by the profiles
reset()¶
Resets the profiler, cleaning up all the profiles
setMaxProfiles()¶
Sets the maximum number of retained profiles. 0 disables the cap (the default; preserves the original unbounded behavior).
startProfile()¶
public function startProfile(
string $sqlStatement,
array $sqlVariables = [],
array $sqlBindTypes = []
): static;
Starts the profile of a SQL sentence
stopProfile()¶
Stops the active profile
Db\Profiler\Item¶
Class Source on GitHub
This class identifies each profile in a Phalcon\Db\Profiler
Phalcon\Db\Profiler\Item
Method Summary¶
public
double
getFinalTime()
Return the timestamp when the profile ended
public
double
getInitialTime()
Return the timestamp when the profile started
public
array
getSqlBindTypes()
Return the SQL bind types related to the profile
public
string
getSqlStatement()
Return the SQL statement related to the profile
public
array
getSqlVariables()
Return the SQL variables related to the profile
public
double
getTotalElapsedMilliseconds()
Returns the total time in milliseconds spent by the profile
public
double
getTotalElapsedNanoseconds()
Returns the total time in nanoseconds spent by the profile
public
double
getTotalElapsedSeconds()
Returns the total time in seconds spent by the profile
public
static
setFinalTime( double $finalTime )
Return the timestamp when the profile ended
public
static
setInitialTime( double $initialTime )
Return the timestamp when the profile started
public
static
setSqlBindTypes( array $sqlBindTypes )
Return the SQL bind types related to the profile
public
static
setSqlStatement( string $sqlStatement )
Return the SQL statement related to the profile
public
static
setSqlVariables( array $sqlVariables )
Return the SQL variables related to the profile
Properties¶
protected
double
$finalTime
Timestamp when the profile ended
protected
double
$initialTime
Timestamp when the profile started
protected
array
$sqlBindTypes
SQL bind types related to the profile
protected
string
$sqlStatement
SQL statement related to the profile
protected
array
$sqlVariables
SQL variables related to the profile
Methods¶
getFinalTime()¶
Return the timestamp when the profile ended
getInitialTime()¶
Return the timestamp when the profile started
getSqlBindTypes()¶
Return the SQL bind types related to the profile
getSqlStatement()¶
Return the SQL statement related to the profile
getSqlVariables()¶
Return the SQL variables related to the profile
getTotalElapsedMilliseconds()¶
Returns the total time in milliseconds spent by the profile
getTotalElapsedNanoseconds()¶
Returns the total time in nanoseconds spent by the profile
getTotalElapsedSeconds()¶
Returns the total time in seconds spent by the profile
setFinalTime()¶
Return the timestamp when the profile ended
setInitialTime()¶
Return the timestamp when the profile started
setSqlBindTypes()¶
Return the SQL bind types related to the profile
setSqlStatement()¶
Return the SQL statement related to the profile
setSqlVariables()¶
Return the SQL variables related to the profile
Db\RawValue¶
Class Source on GitHub
This class allows to insert/update raw data without quoting or formatting.
The next example shows how to use the MySQL now() function as a field value.
$subscriber = new Subscribers();
$subscriber->email = "[email protected]";
$subscriber->createdAt = new \Phalcon\Db\RawValue("now()");
$subscriber->save();
Phalcon\Db\RawValue
Method Summary¶
public
__construct( mixed $value )
Phalcon\Db\RawValue constructor
public
string
__toString()
public
string
getValue()
Properties¶
protected
string
$value
Raw value without quoting or formatting
Methods¶
__construct()¶
Phalcon\Db\RawValue constructor
__toString()¶
getValue()¶
Db\Reference¶
Class Source on GitHub
Allows to define reference constraints on tables
$reference = new \Phalcon\Db\Reference(
"field_fk",
[
"referencedSchema" => "invoicing",
"referencedTable" => "products",
"columns" => [
"producttype",
"product_code",
],
"referencedColumns" => [
"type",
"code",
],
]
);
Phalcon\Db\Reference- implementsPhalcon\Db\ReferenceInterface
Uses Phalcon\Db\Exceptions\ForeignKeyColumnsRequired · Phalcon\Db\Exceptions\ReferencedColumnCountMismatch · Phalcon\Db\Exceptions\ReferencedColumnsRequired · Phalcon\Db\Exceptions\ReferencedTableRequired
Method Summary¶
public
__construct(string $name,array $definition)
Phalcon\Db\Reference constructor
public
array
getColumns()
Local reference columns
public
string
getName()
Constraint name
public
string|null
getOnDelete()
ON DELETE
public
string|null
getOnUpdate()
ON UPDATE
public
array
getReferencedColumns()
Referenced Columns
public
string|null
getReferencedSchema()
Referenced Schema
public
string
getReferencedTable()
Referenced Table
public
string|null
getSchemaName()
Schema name
Properties¶
protected
array
$columns
Local reference columns
protected
string
$name
Constraint name
protected
string
$onDelete
ON DELETE
protected
string
$onUpdate
ON UPDATE
protected
array
$referencedColumns
Referenced Columns
protected
string
$referencedSchema
Referenced Schema
protected
string
$referencedTable
Referenced Table
protected
string
$schemaName
Schema name
Methods¶
__construct()¶
Phalcon\Db\Reference constructor
getColumns()¶
Local reference columns
getName()¶
Constraint name
getOnDelete()¶
ON DELETE
getOnUpdate()¶
ON UPDATE
getReferencedColumns()¶
Referenced Columns
getReferencedSchema()¶
Referenced Schema
getReferencedTable()¶
Referenced Table
getSchemaName()¶
Schema name
Db\ReferenceInterface¶
Interface Source on GitHub
Phalcon\Db\ReferenceInterface
Phalcon\Contracts\Db\ReferencePhalcon\Db\ReferenceInterface
Uses Phalcon\Contracts\Db\Reference
Db\ResultInterface¶
Interface Source on GitHub
Phalcon\Db\ResultInterface
Phalcon\Contracts\Db\ResultPhalcon\Db\ResultInterface
Uses Phalcon\Contracts\Db\Result
Db\Result\PdoResult¶
Class Source on GitHub
Encapsulates the resultset internals
$result = $connection->query("SELECT * FROM robots ORDER BY name");
$result->setFetchMode(
\Phalcon\Db\Enum::FETCH_NUM
);
while ($robot = $result->fetchArray()) {
print_r($robot);
}
Phalcon\Db\Result\PdoResult- implementsPhalcon\Db\ResultInterface
Uses Phalcon\Db\Adapter\AdapterInterface · Phalcon\Db\Enum · Phalcon\Db\ResultInterface
Method Summary¶
public
__construct(AdapterInterface $connection,\PDOStatement $result,mixed $sqlStatement = null,mixed $bindParams = null,mixed $bindTypes = null)
Phalcon\Db\Result\Pdo constructor
public
void
dataSeek( int $number )
Moves internal resultset cursor to another position letting us to fetch a
public
bool
execute()
Allows to execute the statement again. Some database systems don't
public
fetch(int $fetchStyle = null,int $cursorOrientation = Enum::FETCH_ORI_NEXT,int $cursorOffset = 0)
Fetches an array/object of strings that corresponds to the fetched row,
public
array
fetchAll(int $mode = Enum::FETCH_DEFAULT,mixed $fetchArgument = Enum::FETCH_ORI_NEXT,mixed $constructorArgs = null)
Returns an array of arrays containing all the records in the result
public
fetchArray()
Returns an array of strings that corresponds to the fetched row, or FALSE
public
\PDOStatement
getInternalResult()
Gets the internal PDO result object
public
int
numRows()
Gets number of rows returned by a resultset
public
bool
setFetchMode(int $fetchMode,mixed $colNoOrClassNameOrObject = null,mixed $ctorargs = null)
Changes the fetching mode affecting Phalcon\Db\Result\Pdo::fetch()
Properties¶
protected
array
$bindParams = []
protected
array
$bindTypes = []
protected
AdapterInterface
$connection
protected
int
$fetchMode = Enum::FETCH_DEFAULT
Active fetch mode
protected
\PDOStatement
$pdoStatement
Internal resultset
protected
mixed
$result
protected
int|null
$rowCount = null
protected
string|null
$sqlStatement = null
Methods¶
__construct()¶
public function __construct(
AdapterInterface $connection,
\PDOStatement $result,
mixed $sqlStatement = null,
mixed $bindParams = null,
mixed $bindTypes = null
);
Phalcon\Db\Result\Pdo constructor
dataSeek()¶
Moves internal resultset cursor to another position letting us to fetch a certain row
$result = $connection->query(
"SELECT * FROM robots ORDER BY name"
);
// Move to third row on result
$result->dataSeek(2);
// Fetch third row
$row = $result->fetch();
execute()¶
Allows to execute the statement again. Some database systems don't support scrollable cursors. So, as cursors are forward only, we need to execute the cursor again to fetch rows from the beginning
fetch()¶
public function fetch(
int $fetchStyle = null,
int $cursorOrientation = Enum::FETCH_ORI_NEXT,
int $cursorOffset = 0
);
Fetches an array/object of strings that corresponds to the fetched row,
or FALSE if there are no more rows. This method is affected by the active
fetch flag set using Phalcon\Db\Result\Pdo::setFetchMode()
$result = $connection->query("SELECT * FROM robots ORDER BY name");
$result->setFetchMode(
\Phalcon\Enum::FETCH_OBJ
);
while ($robot = $result->fetch()) {
echo $robot->name;
}
fetchAll()¶
public function fetchAll(
int $mode = Enum::FETCH_DEFAULT,
mixed $fetchArgument = Enum::FETCH_ORI_NEXT,
mixed $constructorArgs = null
): array;
Returns an array of arrays containing all the records in the result
This method is affected by the active fetch flag set using
Phalcon\Db\Result\Pdo::setFetchMode()
$result = $connection->query(
"SELECT * FROM robots ORDER BY name"
);
$robots = $result->fetchAll();
fetchArray()¶
Returns an array of strings that corresponds to the fetched row, or FALSE
if there are no more rows. This method is affected by the active fetch
flag set using Phalcon\Db\Result\Pdo::setFetchMode()
$result = $connection->query("SELECT * FROM robots ORDER BY name");
$result->setFetchMode(
\Phalcon\Enum::FETCH_NUM
);
while ($robot = result->fetchArray()) {
print_r($robot);
}
getInternalResult()¶
Gets the internal PDO result object
numRows()¶
Gets number of rows returned by a resultset
$result = $connection->query(
"SELECT * FROM robots ORDER BY name"
);
echo "There are ", $result->numRows(), " rows in the resultset";
setFetchMode()¶
public function setFetchMode(
int $fetchMode,
mixed $colNoOrClassNameOrObject = null,
mixed $ctorargs = null
): bool;
Changes the fetching mode affecting Phalcon\Db\Result\Pdo::fetch()
// Return array with integer indexes
$result->setFetchMode(
\Phalcon\Enum::FETCH_NUM
);
// Return associative array without integer indexes
$result->setFetchMode(
\Phalcon\Enum::FETCH_ASSOC
);
// Return associative array together with integer indexes
$result->setFetchMode(
\Phalcon\Enum::FETCH_BOTH
);
// Return an object
$result->setFetchMode(
\Phalcon\Enum::FETCH_OBJ
);