Abstract class Phalcon\Db\Adapter

implements Phalcon\Db\AdapterInterface, Phalcon\Events\EventsAwareInterface

Source on GitHub

Base class for Phalcon\Db adapters

Methods

public getDialectType ()

Name of the dialect used

public getType ()

Type of database system the adapter is used for

public getSqlVariables ()

Active SQL bound parameter variables

public __construct (array $descriptor)

Phalcon\Db\Adapter constructor

public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager)

Sets the event manager

public getEventsManager ()

Returns the internal event manager

public setDialect (Phalcon\Db\DialectInterface $dialect)

Sets the dialect used to produce the SQL

public getDialect ()

Returns internal dialect instance

public fetchOne (mixed $sqlQuery, [mixed $fetchMode], [mixed $bindParams], [mixed $bindTypes])

Returns the first row in a SQL query result

  1. <?php
  2. // Getting first robot
  3. $robot = $connection->fetchOne("SELECT * FROM robots");
  4. print_r($robot);
  5. // Getting first robot with associative indexes only
  6. $robot = $connection->fetchOne("SELECT * FROM robots", \Phalcon\Db::FETCH_ASSOC);
  7. print_r($robot);

public array fetchAll (string $sqlQuery, [int $fetchMode], [array $bindParams], [array $bindTypes])

Dumps the complete result of a query into an array

  1. <?php
  2. // Getting all robots with associative indexes only
  3. $robots = $connection->fetchAll(
  4. "SELECT * FROM robots",
  5. \Phalcon\Db::FETCH_ASSOC
  6. );
  7. foreach ($robots as $robot) {
  8. print_r($robot);
  9. }
  10. // Getting all robots that contains word "robot" withing the name
  11. $robots = $connection->fetchAll(
  12. "SELECT * FROM robots WHERE name LIKE :name",
  13. \Phalcon\Db::FETCH_ASSOC,
  14. [
  15. "name" => "%robot%",
  16. ]
  17. );
  18. foreach($robots as $robot) {
  19. print_r($robot);
  20. }

public string | ** fetchColumn (string $sqlQuery, [array $placeholders], [int | string $column])

Returns the n’th field of first row in a SQL query result

  1. <?php
  2. // Getting count of robots
  3. $robotsCount = $connection->fetchColumn("SELECT count(*) FROM robots");
  4. print_r($robotsCount);
  5. // Getting name of last edited robot
  6. $robot = $connection->fetchColumn(
  7. "SELECT id, name FROM robots order by modified desc",
  8. 1
  9. );
  10. print_r($robot);

public boolean insert (string | array $table, array $values, [array $fields], [array $dataTypes])

Inserts data into a table using custom RDBMS SQL syntax

  1. <?php
  2. // Inserting a new robot
  3. $success = $connection->insert(
  4. "robots",
  5. ["Astro Boy", 1952],
  6. ["name", "year"]
  7. );
  8. // Next SQL sentence is sent to the database system
  9. INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean insertAsDict (string $table, array $data, [array $dataTypes])

Inserts data into a table using custom RBDM SQL syntax

  1. <?php
  2. // Inserting a new robot
  3. $success = $connection->insertAsDict(
  4. "robots",
  5. [
  6. "name" => "Astro Boy",
  7. "year" => 1952,
  8. ]
  9. );
  10. // Next SQL sentence is sent to the database system
  11. INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean update (string | array $table, array $fields, array $values, [string | array $whereCondition], [array $dataTypes])

Updates data on a table using custom RBDM SQL syntax

  1. <?php
  2. // Updating existing robot
  3. $success = $connection->update(
  4. "robots",
  5. ["name"],
  6. ["New Astro Boy"],
  7. "id = 101"
  8. );
  9. // Next SQL sentence is sent to the database system
  10. UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101
  11. // Updating existing robot with array condition and $dataTypes
  12. $success = $connection->update(
  13. "robots",
  14. ["name"],
  15. ["New Astro Boy"],
  16. [
  17. "conditions" => "id = ?",
  18. "bind" => [$some_unsafe_id],
  19. "bindTypes" => [PDO::PARAM_INT], // use only if you use $dataTypes param
  20. ],
  21. [
  22. PDO::PARAM_STR
  23. ]
  24. );

Warning! If $whereCondition is string it not escaped.

public boolean updateAsDict (string $table, array $data, [string $whereCondition], [array $dataTypes])

Updates data on a table using custom RBDM SQL syntax Another, more convenient syntax

  1. <?php
  2. // Updating existing robot
  3. $success = $connection->updateAsDict(
  4. "robots",
  5. [
  6. "name" => "New Astro Boy",
  7. ],
  8. "id = 101"
  9. );
  10. // Next SQL sentence is sent to the database system
  11. UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101

public boolean delete (string | array $table, [string $whereCondition], [array $placeholders], [array $dataTypes])

Deletes data from a table using custom RBDM SQL syntax

  1. <?php
  2. // Deleting existing robot
  3. $success = $connection->delete(
  4. "robots",
  5. "id = 101"
  6. );
  7. // Next SQL sentence is generated
  8. DELETE FROM `robots` WHERE `id` = 101

public escapeIdentifier (array | string $identifier)

Escapes a column/table/schema name

  1. <?php
  2. $escapedTable = $connection->escapeIdentifier(
  3. "robots"
  4. );
  5. $escapedTable = $connection->escapeIdentifier(
  6. [
  7. "store",
  8. "robots",
  9. ]
  10. );

public string getColumnList (array $columnList)

Gets a list of columns

public limit (mixed $sqlQuery, mixed $number)

Appends a LIMIT clause to $sqlQuery argument

  1. <?php
  2. echo $connection->limit("SELECT * FROM robots", 5);

public tableExists (mixed $tableName, [mixed $schemaName])

Generates SQL checking for the existence of a schema.table

  1. <?php
  2. var_dump(
  3. $connection->tableExists("blog", "posts")
  4. );

public viewExists (mixed $viewName, [mixed $schemaName])

Generates SQL checking for the existence of a schema.view

  1. <?php
  2. var_dump(
  3. $connection->viewExists("active_users", "posts")
  4. );

public forUpdate (mixed $sqlQuery)

Returns a SQL modified with a FOR UPDATE clause

public sharedLock (mixed $sqlQuery)

Returns a SQL modified with a LOCK IN SHARE MODE clause

public createTable (mixed $tableName, mixed $schemaName, array $definition)

Creates a table

public dropTable (mixed $tableName, [mixed $schemaName], [mixed $ifExists])

Drops a table from a schema/database

public createView (mixed $viewName, array $definition, [mixed $schemaName])

Creates a view

public dropView (mixed $viewName, [mixed $schemaName], [mixed $ifExists])

Drops a view

public addColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column)

Adds a column to a table

public modifyColumn (mixed $tableName, mixed $schemaName, Phalcon\Db\ColumnInterface $column, [Phalcon\Db\ColumnInterface $currentColumn])

Modifies a table column based on a definition

public dropColumn (mixed $tableName, mixed $schemaName, mixed $columnName)

Drops a column from a table

public addIndex (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index)

Adds an index to a table

public dropIndex (mixed $tableName, mixed $schemaName, mixed $indexName)

Drop an index from a table

public addPrimaryKey (mixed $tableName, mixed $schemaName, Phalcon\Db\IndexInterface $index)

Adds a primary key to a table

public dropPrimaryKey (mixed $tableName, mixed $schemaName)

Drops a table’s primary key

public addForeignKey (mixed $tableName, mixed $schemaName, Phalcon\Db\ReferenceInterface $reference)

Adds a foreign key to a table

public dropForeignKey (mixed $tableName, mixed $schemaName, mixed $referenceName)

Drops a foreign key from a table

public getColumnDefinition (Phalcon\Db\ColumnInterface $column)

Returns the SQL column definition from a column

public listTables ([mixed $schemaName])

List all tables on a database

  1. <?php
  2. print_r(
  3. $connection->listTables("blog")
  4. );

public listViews ([mixed $schemaName])

List all views on a database

  1. <?php
  2. print_r(
  3. $connection->listViews("blog")
  4. );

public Phalcon\Db\Index[] describeIndexes (string $table, [string $schema])

Lists table indexes

  1. <?php
  2. print_r(
  3. $connection->describeIndexes("robots_parts")
  4. );

public describeReferences (mixed $table, [mixed $schema])

Lists table references

  1. <?php
  2. print_r(
  3. $connection->describeReferences("robots_parts")
  4. );

public tableOptions (mixed $tableName, [mixed $schemaName])

Gets creation options from a table

  1. <?php
  2. print_r(
  3. $connection->tableOptions("robots")
  4. );

public createSavepoint (mixed $name)

Creates a new savepoint

public releaseSavepoint (mixed $name)

Releases given savepoint

public rollbackSavepoint (mixed $name)

Rollbacks given savepoint

public setNestedTransactionsWithSavepoints (mixed $nestedTransactionsWithSavepoints)

Set if nested transactions should use savepoints

public isNestedTransactionsWithSavepoints ()

Returns if nested transactions should use savepoints

public getNestedTransactionSavepointName ()

Returns the savepoint name to use for nested transactions

public getDefaultIdValue ()

Returns the default identity value to be inserted in an identity column

  1. <?php
  2. // Inserting a new robot with a valid default value for the column 'id'
  3. $success = $connection->insert(
  4. "robots",
  5. [
  6. $connection->getDefaultIdValue(),
  7. "Astro Boy",
  8. 1952,
  9. ],
  10. [
  11. "id",
  12. "name",
  13. "year",
  14. ]
  15. );

public getDefaultValue ()

Returns the default value to make the RBDM use the default value declared in the table definition

  1. <?php
  2. // Inserting a new robot with a valid default value for the column 'year'
  3. $success = $connection->insert(
  4. "robots",
  5. [
  6. "Astro Boy",
  7. $connection->getDefaultValue()
  8. ],
  9. [
  10. "name",
  11. "year",
  12. ]
  13. );

public supportSequences ()

Check whether the database system requires a sequence to produce auto-numeric values

public useExplicitIdValue ()

Check whether the database system requires an explicit value for identity columns

public getDescriptor ()

Return descriptor used to connect to the active database

public string getConnectionId ()

Gets the active connection unique identifier

public getSQLStatement ()

Active SQL statement in the object

public getRealSQLStatement ()

Active SQL statement in the object without replace bound parameters

public array getSQLBindTypes ()

Active SQL statement in the object

abstract public connect ([array $descriptor]) inherited from Phalcon\Db\AdapterInterface

abstract public query (mixed $sqlStatement, [mixed $placeholders], [mixed $dataTypes]) inherited from Phalcon\Db\AdapterInterface

abstract public execute (mixed $sqlStatement, [mixed $placeholders], [mixed $dataTypes]) inherited from Phalcon\Db\AdapterInterface

abstract public affectedRows () inherited from Phalcon\Db\AdapterInterface

abstract public close () inherited from Phalcon\Db\AdapterInterface

abstract public escapeString (mixed $str) inherited from Phalcon\Db\AdapterInterface

abstract public lastInsertId ([mixed $sequenceName]) inherited from Phalcon\Db\AdapterInterface

abstract public begin ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

abstract public rollback ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

abstract public commit ([mixed $nesting]) inherited from Phalcon\Db\AdapterInterface

abstract public isUnderTransaction () inherited from Phalcon\Db\AdapterInterface

abstract public getInternalHandler () inherited from Phalcon\Db\AdapterInterface

abstract public describeColumns (mixed $table, [mixed $schema]) inherited from Phalcon\Db\AdapterInterface