Documentation

Abstract class Phalcon\Db\Adapter\Pdo

extends abstract class Phalcon\Db\Adapter

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

Source on GitHub

Phalcon\Db\Adapter\Pdo is the Phalcon\Db that internally uses PDO to connect to a database

<?php

$connection = new Phalcon\Db\Adapter\Pdo\Mysql(array(
    'host' => '192.168.0.11',
    'username' => 'sigma',
    'password' => 'secret',
    'dbname' => 'blog',
    'port' => '3306'
));

Methods

public __construct (array $descriptor)

Constructor for Phalcon\Db\Adapter\Pdo

public boolean connect ([array $descriptor])

This method is automatically called in Phalcon\Db\Adapter\Pdo constructor. Call it when you need to restore a database connection

<?php

 //Make a connection
 $connection = new Phalcon\Db\Adapter\Pdo\Mysql(array(
  'host' => '192.168.0.11',
  'username' => 'sigma',
  'password' => 'secret',
  'dbname' => 'blog',
 ));

 //Reconnect
 $connection->connect();

public PDOStatement prepare (string $sqlStatement)

Returns a PDO prepared statement to be executed with ‘executePrepared’

<?php

 $statement = $connection->prepare('SELECT * FROM robots WHERE name = :name');
 $pdoResult = $connection->executePrepared($statement, array('name' => 'Voltron'));

public PDOStatement executePrepared (PDOStatement $statement, [array $placeholders], [array $dataTypes])

Executes a prepared statement binding. This function uses integer indexes starting from zero

<?php

 $statement = $connection->prepare('SELECT * FROM robots WHERE name = :name');
 $pdoResult = $connection->executePrepared($statement, array('name' => 'Voltron'));

public Phalcon\Db\ResultInterface query (string $sqlStatement, [unknown $placeholders], [unknown $dataTypes])

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

<?php

//Querying data
$resultset = $connection->query("SELECT * FROM robots WHERE type='mechanical'");
$resultset = $connection->query("SELECT * FROM robots WHERE type=?", array("mechanical"));

public boolean execute (string $sqlStatement, [unknown $placeholders], [unknown $dataTypes])

Sends SQL statements to the database server returning the success state. Use this method only when the SQL statement sent to the server doesn’t return any row

<?php

//Inserting data
$success = $connection->execute("INSERT INTO robots VALUES (1, 'Astro Boy')");
$success = $connection->execute("INSERT INTO robots VALUES (?, ?)", array(1, 'Astro Boy'));

public int affectedRows ()

Returns the number of affected rows by the lastest INSERT/UPDATE/DELETE executed in the database system

<?php

$connection->execute("DELETE FROM robots");
echo $connection->affectedRows(), ' were deleted';

public boolean close ()

Closes the active connection returning success. Phalcon automatically closes and destroys active connections when the request ends

public string escapeIdentifier (string $identifier)

Escapes a column/table/schema name

<?php

$escapedTable = $connection->escapeIdentifier('robots');
$escapedTable = $connection->escapeIdentifier(array('store', 'robots'));

public string escapeValue (mixed $value)

Escapes a value to avoid SQL injections according to the active charset in the connection

<?php

$escapedValue = $connection->escapeValue('some dangerous value');

public string escapeString (string $str)

Escapes a value to avoid SQL injections according to the active charset in the connection

<?php

$escapedStr = $connection->escapeString('some dangerous value');

public array convertBoundParams (unknown $sqlStatement, array $params)

Converts bound parameters such as :name: or ?1 into PDO bind params ?

<?php

 print_r($connection->convertBoundParams('SELECT * FROM robots WHERE name = :name:', array('Bender')));

public int lastInsertId ([string $sequenceName])

Returns the insert id for the auto_increment/serial column inserted in the lastest executed SQL statement

<?php

 //Inserting a new robot
 $success = $connection->insert(
     "robots",
     array("Astro Boy", 1952),
     array("name", "year")
 );

 //Getting the generated id
 $id = $connection->lastInsertId();

public boolean begin ([boolean $nesting])

Starts a transaction in the connection

public boolean rollback ([boolean $nesting])

Rollbacks the active transaction in the connection

public boolean commit ([boolean $nesting])

Commits the active transaction in the connection

public int getTransactionLevel ()

Returns the current transaction nesting level

public boolean isUnderTransaction ()

Checks whether the connection is under a transaction

<?php

$connection->begin();
var_dump($connection->isUnderTransaction()); //true

public PDO getInternalHandler ()

Return internal PDO handler

public array getErrorInfo ()

Return the error info, if any

public setProfiler (Phalcon\Db\Profiler $profiler) inherited from Phalcon\Db\Adapter

Sets the profiler

public Phalcon\Db\Profiler getProfiler () inherited from Phalcon\Db\Adapter

Returns the profiler

public setDialect (unknown $dialect) inherited from Phalcon\Db\Adapter

Sets the dialect used to produce the SQL

public Phalcon\Db\DialectInterface getDialect () inherited from Phalcon\Db\Adapter

Returns internal dialect instance

public array fetchOne (string $sqlQuery, [int $fetchMode], [unknown $placeholders], [mixed $fetchArgument], [array $ctorArgs]) inherited from Phalcon\Db\Adapter

Returns the first row in a SQL query result

<?php

//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::FETCH_ASSOC);
print_r($robot);

public array fetchAll (string $sqlQuery, [int $fetchMode], [unknown $placeholders], [mixed $fetchArgument], [array $ctorArgs]) inherited from Phalcon\Db\Adapter

Dumps the complete result of a query into an array

<?php

//Getting all robots with associative indexes only
$robots = $connection->fetchAll("SELECT * FROM robots", Phalcon\Db::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::FETCH_ASSOC,
    array('name' => '%robot%')
  );
foreach($robots as $robot){
    print_r($robot);
}

public boolean insert (string $table, array $values, [array $fields], [array $dataTypes]) inherited from Phalcon\Db\Adapter

Inserts data into a table using custom RBDM SQL syntax

<?php

 //Inserting a new robot
 $success = $connection->insert(
     "robots",
     array("Astro Boy", 1952),
     array("name", "year")
 );

 //Next SQL sentence is sent to the database system
 INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean insertAsDict (string $table, array $data, [array $dataTypes]) inherited from Phalcon\Db\Adapter

Inserts data into a table using custom RBDM SQL syntax Another, more convenient syntax

<?php

 //Inserting a new robot
 $success = $connection->insertAsDict(
 "robots",
 array(
      "name" => "Astro Boy",
      "year" => 1952
  )
 );

 //Next SQL sentence is sent to the database system
 INSERT INTO `robots` (`name`, `year`) VALUES ("Astro boy", 1952);

public boolean update (string $table, array $fields, array $values, [string $whereCondition], [array $dataTypes]) inherited from Phalcon\Db\Adapter

Updates data on a table using custom RBDM SQL syntax

<?php

 //Updating existing robot
 $success = $connection->update(
     "robots",
     array("name"),
     array("New Astro Boy"),
     "id = 101"
 );

 //Next SQL sentence is sent to the database system
 UPDATE `robots` SET `name` = "Astro boy" WHERE id = 101

public boolean delete (string $table, [string $whereCondition], [array $placeholders], [array $dataTypes]) inherited from Phalcon\Db\Adapter

Deletes data from a table using custom RBDM SQL syntax

<?php

 //Deleting existing robot
 $success = $connection->delete(
     "robots",
     "id = 101"
 );

 //Next SQL sentence is generated
 DELETE FROM `robots` WHERE `id` = 101

public string getColumnList (array $columnList) inherited from Phalcon\Db\Adapter

Gets a list of columns

public string limit (string $sqlQuery, int $number) inherited from Phalcon\Db\Adapter

Appends a LIMIT clause to $sqlQuery argument

<?php

    echo $connection->limit("SELECT * FROM robots", 5);

public string tableExists (string $tableName, [string $schemaName]) inherited from Phalcon\Db\Adapter

Generates SQL checking for the existence of a schema.table

<?php

    var_dump($connection->tableExists("blog", "posts"));

public string viewExists (string $viewName, [string $schemaName]) inherited from Phalcon\Db\Adapter

Generates SQL checking for the existence of a schema.view

<?php

 var_dump($connection->viewExists("active_users", "posts"));

public string forUpdate (string $sqlQuery) inherited from Phalcon\Db\Adapter

Returns a SQL modified with a FOR UPDATE clause

public string sharedLock (string $sqlQuery) inherited from Phalcon\Db\Adapter

Returns a SQL modified with a LOCK IN SHARE MODE clause

public boolean createTable (string $tableName, string $schemaName, array $definition) inherited from Phalcon\Db\Adapter

Creates a table

public boolean dropTable (string $tableName, [string $schemaName], [boolean $ifExists]) inherited from Phalcon\Db\Adapter

Drops a table from a schema/database

public boolean createView (unknown $viewName, array $definition, [string $schemaName]) inherited from Phalcon\Db\Adapter

Creates a view

public boolean dropView (string $viewName, [string $schemaName], [boolean $ifExists]) inherited from Phalcon\Db\Adapter

Drops a view

public boolean addColumn (string $tableName, string $schemaName, Phalcon\Db\ColumnInterface $column) inherited from Phalcon\Db\Adapter

Adds a column to a table

public boolean modifyColumn (string $tableName, string $schemaName, Phalcon\Db\ColumnInterface $column) inherited from Phalcon\Db\Adapter

Modifies a table column based on a definition

public boolean dropColumn (string $tableName, string $schemaName, string $columnName) inherited from Phalcon\Db\Adapter

Drops a column from a table

public boolean addIndex (string $tableName, string $schemaName, Phalcon\Db\IndexInterface $index) inherited from Phalcon\Db\Adapter

Adds an index to a table

public boolean dropIndex (string $tableName, string $schemaName, string $indexName) inherited from Phalcon\Db\Adapter

Drop an index from a table

public boolean addPrimaryKey (string $tableName, string $schemaName, Phalcon\Db\IndexInterface $index) inherited from Phalcon\Db\Adapter

Adds a primary key to a table

public boolean dropPrimaryKey (string $tableName, string $schemaName) inherited from Phalcon\Db\Adapter

Drops a table’s primary key

public boolean true addForeignKey (string $tableName, string $schemaName, Phalcon\Db\ReferenceInterface $reference) inherited from Phalcon\Db\Adapter

Adds a foreign key to a table

public boolean true dropForeignKey (string $tableName, string $schemaName, string $referenceName) inherited from Phalcon\Db\Adapter

Drops a foreign key from a table

public string getColumnDefinition (Phalcon\Db\ColumnInterface $column) inherited from Phalcon\Db\Adapter

Returns the SQL column definition from a column

public array listTables ([string $schemaName]) inherited from Phalcon\Db\Adapter

List all tables on a database

<?php

    print_r($connection->listTables("blog"));

public array listViews ([string $schemaName]) inherited from Phalcon\Db\Adapter

List all views on a database

<?php

print_r($connection->listViews("blog")); ?>

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

Lists table indexes

<?php

print_r($connection->describeIndexes('robots_parts'));

public Phalcon\Db\Reference [] describeReferences (string $table, [string $schema]) inherited from Phalcon\Db\Adapter

Lists table references

<?php

 print_r($connection->describeReferences('robots_parts'));

public array tableOptions (string $tableName, [string $schemaName]) inherited from Phalcon\Db\Adapter

Gets creation options from a table

<?php

 print_r($connection->tableOptions('robots'));

public boolean createSavepoint (string $name) inherited from Phalcon\Db\Adapter

Creates a new savepoint

public boolean releaseSavepoint (string $name) inherited from Phalcon\Db\Adapter

Releases given savepoint

public boolean rollbackSavepoint (string $name) inherited from Phalcon\Db\Adapter

Rollbacks given savepoint

public Phalcon\Db\AdapterInterface setNestedTransactionsWithSavepoints (boolean $nestedTransactionsWithSavepoints) inherited from Phalcon\Db\Adapter

Set if nested transactions should use savepoints

public boolean isNestedTransactionsWithSavepoints () inherited from Phalcon\Db\Adapter

Returns if nested transactions should use savepoints

public string getNestedTransactionSavepointName () inherited from Phalcon\Db\Adapter

Returns the savepoint name to use for nested transactions

public Phalcon\Db\RawValue getDefaultIdValue () inherited from Phalcon\Db\Adapter

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

<?php

 //Inserting a new robot with a valid default value for the column 'id'
 $success = $connection->insert(
     "robots",
     array($connection->getDefaultIdValue(), "Astro Boy", 1952),
     array("id", "name", "year")
 );

public boolean supportSequences () inherited from Phalcon\Db\Adapter

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

public boolean useExplicitIdValue () inherited from Phalcon\Db\Adapter

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

public array getDescriptor () inherited from Phalcon\Db\Adapter

Return descriptor used to connect to the active database

public string getConnectionId () inherited from Phalcon\Db\Adapter

Gets the active connection unique identifier

public string getSQLStatement () inherited from Phalcon\Db\Adapter

Active SQL statement in the object

public string getExpectSQLStatement () inherited from Phalcon\Db\Adapter

Active SQL statement in the object with replace bound paramters

public array getSQLVariables () inherited from Phalcon\Db\Adapter

Active SQL statement in the object

public array getSQLBindTypes () inherited from Phalcon\Db\Adapter

Active SQL statement in the object

public string getType () inherited from Phalcon\Db\Adapter

Returns type of database system the adapter is used for

public string getDialectType () inherited from Phalcon\Db\Adapter

Returns the name of the dialect used

public Phalcon\Db\Builder\Select createSelectBuilder (unknown $tables) inherited from Phalcon\Db\Adapter

Create a select builder

public Phalcon\Db\Builder\Update createUpdateBuilder (unknown $table) inherited from Phalcon\Db\Adapter

Create a update builder

public Phalcon\Db\Builder\Insert createInsertBuilder (unknown $table) inherited from Phalcon\Db\Adapter

Create a insert builder

public Phalcon\Db\Builder\Delete createDeleteBuilder (unknown $table) inherited from Phalcon\Db\Adapter

Create a delete builder

public setDI (Phalcon\DiInterface $dependencyInjector) inherited from Phalcon\Di\Injectable

Sets the dependency injector

public Phalcon\DiInterface getDI ([unknown $error], [unknown $notUseDefault]) inherited from Phalcon\Di\Injectable

Returns the internal dependency injector

public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) inherited from Phalcon\Di\Injectable

Sets the event manager

public Phalcon\Events\ManagerInterface getEventsManager () inherited from Phalcon\Di\Injectable

Returns the internal event manager

public boolean fireEvent (string $eventName, [mixed $data], [unknown $cancelable]) inherited from Phalcon\Di\Injectable

Fires an event, implicitly calls behaviors and listeners in the events manager are notified

public mixed fireEventCancel (string $eventName, [mixed $data], [unknown $cancelable]) inherited from Phalcon\Di\Injectable

Fires an event, can stop the event by returning to the false

public boolean hasService (string $name) inherited from Phalcon\Di\Injectable

Check whether the DI contains a service by a name

public Phalcon\Di\ServiceInterface setService (unknown $name) inherited from Phalcon\Di\Injectable

Sets a service from the DI

public object|null getService (unknown $name) inherited from Phalcon\Di\Injectable

Obtains a service from the DI

public mixed getResolveService (string $name, [array $args], [unknown $noerror], [unknown $noshared]) inherited from Phalcon\Di\Injectable

Resolves the service based on its configuration

public attachEvent (string $eventType, Closure $callback) inherited from Phalcon\Di\Injectable

Attach a listener to the events

public __get (unknown $property) inherited from Phalcon\Di\Injectable

Magic method __get

public __sleep () inherited from Phalcon\Di\Injectable

...

public __debugInfo () inherited from Phalcon\Di\Injectable

...

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

Returns an array of Phalcon\Db\Column objects describing a table

abstract public string escapeBytea (string $value) inherited from Phalcon\Db\AdapterInterface

Convert php bytea to database bytea

abstract public string unescapeBytea (string $value) inherited from Phalcon\Db\AdapterInterface

Convert database bytea to php bytea

abstract public string escapeArray (array $value, [int $type]) inherited from Phalcon\Db\AdapterInterface

Convert php array to database array

abstract public array unescapeArray (string $value, [int $type]) inherited from Phalcon\Db\AdapterInterface

Convert database array to php array