Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. StatementInterface.php

interface StatementInterface

Represents a prepared statement.

Child implementations should either extend StatementWrapperIterator:


class Drupal\my_module\Driver\Database\my_driver\Statement extends Drupal\Core\Database\StatementWrapperIterator {}

or define their own class. If defining their own class, they will also have to implement either the \Iterator or \IteratorAggregate interface before Drupal\Core\Database\StatementInterface:


class Drupal\my_module\Driver\Database\my_driver\Statement implements Iterator, Drupal\Core\Database\StatementInterface {}

Hierarchy

  • interface \Drupal\Core\Database\StatementInterface extends \Drupal\Core\Database\Traversable

Expanded class hierarchy of StatementInterface

All classes that implement StatementInterface

Related topics

Database abstraction layer
Allow the use of different database servers using the same code base.
7 files declare their use of StatementInterface
Connection.php in core/modules/pgsql/src/Driver/Database/pgsql/Connection.php
Connection.php in core/modules/sqlite/src/Driver/Database/sqlite/Connection.php
ExceptionHandler.php in core/modules/mysql/src/Driver/Database/mysql/ExceptionHandler.php
HelpSearch.php in core/modules/help/src/Plugin/Search/HelpSearch.php
node.module in core/modules/node/node.module

... See full list

File

core/lib/Drupal/Core/Database/StatementInterface.php, line 21

Namespace

Drupal\Core\Database
View source
interface StatementInterface extends \Traversable {
    
    /**
     * Executes a prepared statement.
     *
     * @param $args
     *   An array of values with as many elements as there are bound parameters in
     *   the SQL statement being executed. This can be NULL.
     * @param $options
     *   An array of options for this query.
     *
     * @return bool
     *   TRUE on success, or FALSE on failure.
     */
    public function execute($args = [], $options = []);
    
    /**
     * Gets the query string of this statement.
     *
     * @return string
     *   The query string, in its form with placeholders.
     */
    public function getQueryString();
    
    /**
     * Returns the target connection this statement is associated with.
     *
     * @return string
     *   The target connection string of this statement.
     */
    public function getConnectionTarget() : string;
    
    /**
     * Returns the number of rows matched by the last SQL statement.
     *
     * @return int
     *   The number of rows matched by the last DELETE, INSERT, or UPDATE
     *   statement executed or throws \Drupal\Core\Database\RowCountException
     *   if the last executed statement was SELECT.
     *
     * @throws \Drupal\Core\Database\RowCountException
     */
    public function rowCount();
    
    /**
     * Sets the default fetch mode for this statement.
     *
     * See http://php.net/manual/pdo.constants.php for the definition of the
     * constants used.
     *
     * @param $mode
     *   One of the \PDO::FETCH_* constants.
     * @param $a1
     *   An option depending of the fetch mode specified by $mode:
     *   - for \PDO::FETCH_COLUMN, the index of the column to fetch
     *   - for \PDO::FETCH_CLASS, the name of the class to create
     *   - for \PDO::FETCH_INTO, the object to add the data to
     * @param $a2
     *   If $mode is \PDO::FETCH_CLASS, the optional arguments to pass to the
     *   constructor.
     */
    public function setFetchMode($mode, $a1 = NULL, $a2 = []);
    
    /**
     * Fetches the next row from a result set.
     *
     * See http://php.net/manual/pdo.constants.php for the definition of the
     * constants used.
     *
     * @param $mode
     *   One of the \PDO::FETCH_* constants.
     *   Default to what was specified by setFetchMode().
     * @param $cursor_orientation
     *   Not implemented in all database drivers, don't use.
     * @param $cursor_offset
     *   Not implemented in all database drivers, don't use.
     *
     * @return array|object|false
     *   A result, formatted according to $mode, or FALSE on failure.
     */
    public function fetch($mode = NULL, $cursor_orientation = NULL, $cursor_offset = NULL);
    
    /**
     * Returns a single field from the next record of a result set.
     *
     * @param $index
     *   The numeric index of the field to return. Defaults to the first field.
     *
     * @return mixed
     *   A single field from the next record, or FALSE if there is no next record.
     */
    public function fetchField($index = 0);
    
    /**
     * Fetches the next row and returns it as an object.
     *
     * The object will be of the class specified by StatementInterface::setFetchMode()
     * or stdClass if not specified.
     *
     * @param string|null $class_name
     *   Name of the created class.
     * @param array $constructor_arguments
     *   Elements of this array are passed to the constructor.
     *
     * @return mixed
     *   The object of specified class or \stdClass if not specified. Returns
     *   FALSE or NULL if there is no next row.
     */
    public function fetchObject(?string $class_name = NULL, array $constructor_arguments = []);
    
    /**
     * Fetches the next row and returns it as an associative array.
     *
     * This method corresponds to \PDOStatement::fetchObject(), but for
     * associative arrays. For some reason \PDOStatement does not have a
     * corresponding array helper method, so one is added.
     *
     * @return array|bool
     *   An associative array, or FALSE if there is no next row.
     */
    public function fetchAssoc();
    
    /**
     * Returns an array containing all of the result set rows.
     *
     * @param $mode
     *   One of the \PDO::FETCH_* constants.
     * @param $column_index
     *   If $mode is \PDO::FETCH_COLUMN, the index of the column to fetch.
     * @param $constructor_arguments
     *   If $mode is \PDO::FETCH_CLASS, the arguments to pass to the constructor.
     *
     * @return array
     *   An array of results.
     */
    public function fetchAll($mode = NULL, $column_index = NULL, $constructor_arguments = NULL);
    
    /**
     * Returns an entire single column of a result set as an indexed array.
     *
     * Note that this method will run the result set to the end.
     *
     * @param $index
     *   The index of the column number to fetch.
     *
     * @return array
     *   An indexed array, or an empty array if there is no result set.
     */
    public function fetchCol($index = 0);
    
    /**
     * Returns the entire result set as a single associative array.
     *
     * This method is only useful for two-column result sets. It will return an
     * associative array where the key is one column from the result set and the
     * value is another field. In most cases, the default of the first two columns
     * is appropriate.
     *
     * Note that this method will run the result set to the end.
     *
     * @param $key_index
     *   The numeric index of the field to use as the array key.
     * @param $value_index
     *   The numeric index of the field to use as the array value.
     *
     * @return array
     *   An associative array, or an empty array if there is no result set.
     */
    public function fetchAllKeyed($key_index = 0, $value_index = 1);
    
    /**
     * Returns the result set as an associative array keyed by the given field.
     *
     * If the given key appears multiple times, later records will overwrite
     * earlier ones.
     *
     * @param $key
     *   The name of the field on which to index the array.
     * @param $fetch
     *   The fetch mode to use. If set to \PDO::FETCH_ASSOC, \PDO::FETCH_NUM, or
     *   \PDO::FETCH_BOTH the returned value with be an array of arrays. For any
     *   other value it will be an array of objects. By default, the fetch mode
     *   set for the query will be used.
     *
     * @return array
     *   An associative array, or an empty array if there is no result set.
     */
    public function fetchAllAssoc($key, $fetch = NULL);

}

Members

Title Sort descending Modifiers Object type Summary Overrides
StatementInterface::execute public function Executes a prepared statement. 2
StatementInterface::fetch public function Fetches the next row from a result set. 2
StatementInterface::fetchAll public function Returns an array containing all of the result set rows. 2
StatementInterface::fetchAllAssoc public function Returns the result set as an associative array keyed by the given field. 2
StatementInterface::fetchAllKeyed public function Returns the entire result set as a single associative array. 2
StatementInterface::fetchAssoc public function Fetches the next row and returns it as an associative array. 2
StatementInterface::fetchCol public function Returns an entire single column of a result set as an indexed array. 2
StatementInterface::fetchField public function Returns a single field from the next record of a result set. 2
StatementInterface::fetchObject public function Fetches the next row and returns it as an object. 2
StatementInterface::getConnectionTarget public function Returns the target connection this statement is associated with. 2
StatementInterface::getQueryString public function Gets the query string of this statement. 2
StatementInterface::rowCount public function Returns the number of rows matched by the last SQL statement. 2
StatementInterface::setFetchMode public function Sets the default fetch mode for this statement. 2
RSS feed
Powered by Drupal