Класс StatementDecorator
Представляет базу данных оператор. Операторы содержат запросы, которые могут быть выполнены несколько раз, связывая разные значения при каждом вызове. Этот класс также помогает преобразовывать значения в их допустимое представление для соответствующих типов.
Этот класс является декоратором фактической реализации оператора, например, PDOStatement.
- Cake\Database\Statement\StatementDecorator реализует Cake\Database\StatementInterface, Countable, IteratorAggregate использует Cake\Database\TypeConverterTrait
Прямые подклассы
- Cake\Database\Statement\BufferedStatement
- Cake\Database\Statement\CallbackStatement
- Cake\Database\Statement\PDOStatement
Краткое описание констант
-
stringFETCH_TYPE_ASSOC'assoc' -
stringFETCH_TYPE_NUM'num' -
stringFETCH_TYPE_OBJ'obj'
Краткое описание свойств
-
$_driverprotectedСсылка на объект драйвера, связанный с этим оператором.Cake\Database\Driver|null -
$_hasExecutedprotectedВыполнялся ли этот оператор ранееboolean -
$_statementprotectedCake\Database\StatementInterface|PDOStatement|nullРеализация экземпляра оператора, например, PDOStatement или любая другая пользовательская реализация.
Краткое описание магических свойств
-
$queryStringpublicstring
Краткое описание методов
- __construct() publicКонструктор
- __get() publicМагический метод получения $queryString как только для чтения.
- bind() publicСвязывает набор значений с объектом оператора с соответствующим типом.
- bindValue() public
Присваивает значение позиционному или именованному переменной в подготовленном запросе. Если используются позиционные переменные, необходимо начинать с индекса один, если используются именованные параметры, то просто используйте имя в любом порядке.
- closeCursor() public
Закрывает курсор в базе данных, освобождая все ресурсы и память, выделенные для него. В большинстве случаев вам не нужно вызывать этот метод, так как он автоматически вызывается после извлечения всех результатов из набора результатов.
- columnCount() publicВозвращает количество столбцов, которые будут содержать результаты этого оператора.
- count() public
Операторы могут быть переданы в качестве аргумента для count(), чтобы вернуть количество затронутых строк из последнего выполнения.
- errorCode() publicВозвращает код ошибки для последней ошибки, которая произошла при выполнении этого оператора.
- errorInfo() public
Возвращает информацию об ошибке для последней ошибки, которая произошла при выполнении этого оператора.
- execute() public
Выполняет оператор, отправляя SQL-запрос в базу данных. Он может принимать массив или аргументы, которые будут связаны с переменными запроса. Обратите внимание, что привязка параметров из этого метода не будет выполнять какое-либо пользовательское преобразование типов, как это обычно происходит при вызове
bindValue. - fetch() public
Возвращает следующую строку для набора результатов после выполнения этого оператора. Строки могут извлекаться для содержимого столбцов как имён, так и позиций. Если строк больше нет в наборе результатов, этот метод вернёт false.
- fetchAll() publicВозвращает массив со всеми строками, полученными в результате выполнения этого оператора.
- fetchAssoc() public
Возвращает следующую строку в наборе результатов в виде ассоциативного массива. Вызов этой функции эквивалентен вызову $statement->fetch(StatementDecorator::FETCH_TYPE_ASSOC). Если результаты не найдены, возвращается false.
- fetchColumn() publicВозвращает значение результата в указанной позиции.
- getInnerStatement() publicВозвращает объект оператора, который был обработан этим классом.
- getIterator() public
Операторы могут итерироваться как массивы, этот метод вернёт итератор для обхода всех элементов в результате.
- lastInsertId() publicВозвращает последнюю вставленную первичную строку, используя этот оператор.
- rowCount() publicВозвращает количество строк, затронутых этим SQL-оператором.
Подробное описание методов
__construct()source public
__construct( Cake\Database\StatementInterface|PDOStatement|null $statement = null , Cake\Database\Driver|null $driver = null )
Конструктор
Параметры
-
Cake\Database\StatementInterface|PDOStatement|null$statementoptional null - Реализация оператора, например, PDOStatement
-
Cake\Database\Driver|null$driveroptional null - Экземпляр драйвера
__get()source public
__get( string $property )
Магический метод получения $queryString как только для чтения.
Параметры
- string
$property - внутреннее свойство для получения
Возвращает
mixedbind()source public
bind( array $params , array $types )
Связывает набор значений с объектом оператора с соответствующим типом.
Параметры
- array
$params - список значений для привязки
- array
$types - список типов, которые будут использоваться, ключи должны соответствовать ключам в $params
Реализация
Cake\Database\StatementInterface::bind() bindValue()source public
bindValue( string|integer $column , mixed $value , string $type = 'string' )
Присваивает значение позиционному или именованному переменной в подготовленном запросе. Если используются позиционные переменные, необходимо начинать с индекса один, если используются именованные параметры, то просто используйте имя в любом порядке.
Сочетание позиционных и именованных переменных в одном операторе запрещено.
Примеры:
$statement->bindValue(1, 'a title');
$statement->bindValue('active', true, 'boolean');
$statement->bindValue(5, new \DateTime(), 'date'); Параметры
- string|integer
$column - имя или позиция параметра для привязки
- mixed
$value - значение для привязки к переменной в запросе
- string
$typeoptional 'string' - имя настроенного класса Type
Реализация
Cake\Database\StatementInterface::bindValue() closeCursor()source public
closeCursor( )
Закрывает курсор в базе данных, освобождая все ресурсы и память, выделенные для него. В большинстве случаев вы не должны вызывать этот метод, так как он автоматически вызывается после извлечения всех результатов из набора результатов.
Реализация
Cake\Database\StatementInterface::closeCursor() columnCount()source public
columnCount( )
Возвращает количество столбцов, которые будут содержать результаты этого оператора.
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
echo $statement->columnCount(); // outputs 2 Возвращает
integerРеализация
Cake\Database\StatementInterface::columnCount() count()source public
count( )
Операторы могут передаваться в качестве аргумента для count() для возвращения количества затронутых строк от последнего выполнения.
Возвращает
integerРеализация
Cake\Database\StatementInterface::count() errorCode()source public
errorCode( )
Возвращает код ошибки для последней ошибки, возникшей при выполнении этого оператора.
Возвращает
integer|stringРеализация
Cake\Database\StatementInterface::errorCode() errorInfo()source public
errorInfo( )
Возвращает информацию об ошибке для последней ошибки, возникшей при выполнении этого оператора.
Возвращает
arrayРеализация
Cake\Database\StatementInterface::errorInfo() execute()source public
execute( array|null $params = null )
Выполняет оператор, отправляя SQL-запрос в базу данных. Он может необязательно принимать массив или аргументы, которые должны быть привязаны к переменным запроса. Обратите внимание, что привязка параметров из этого метода не будет выполнять какой-либо пользовательской преобразования типов, как это обычно происходит при вызове bindValue.
Параметры
- array|null
$paramsнеобязательно null - список значений, которые должны быть привязаны к переменным запроса
Возвращает
booleantrue при успехе, false в противном случае
Реализация
Cake\Database\StatementInterface::execute() fetch()source public
fetch( string $type = self::FETCH_TYPE_NUM )
Возвращает следующую строку для набора результатов после выполнения этого оператора. Строки могут извлекаться, содержащие столбцы в виде имён или позиций. Если в наборе результатов больше нет строк, этот метод вернет false.
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->fetch('assoc')); // will show ['id' => 1, 'title' => 'a title'] Параметры
- string
$typeнеобязательно self::FETCH_TYPE_NUM - 'num' для позиционных столбцов, assoc для именованных столбцов
Возвращает
array|falseМассив результатов, содержащий столбцы и значения, или false, если результатов больше нет
Реализация
Cake\Database\StatementInterface::fetch() fetchAll()source public
fetchAll( string $type = self::FETCH_TYPE_NUM )
Возвращает массив со всеми строками, полученными в результате выполнения этого оператора.
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->fetchAll('assoc')); // will show [0 => ['id' => 1, 'title' => 'a title']] Параметры
- string
$typeнеобязательно self::FETCH_TYPE_NUM - num для извлечения столбцов в качестве позиционных ключей или assoc для названий столбцов в качестве ключей
Возвращает
arrayСписок всех результатов из базы данных для этого оператора
Реализация
Cake\Database\StatementInterface::fetchAll() fetchAssoc()source public
fetchAssoc( )
Возвращает следующую строку в наборе результатов в виде ассоциативного массива. Вызов этой функции эквивалентен вызову $statement->fetch(StatementDecorator::FETCH_TYPE_ASSOC). Если результатов не найдено, возвращается false.
Возвращает
array|falseМассив результатов, содержащий столбцы и значения в виде ассоциативного массива или false, если результатов нет
fetchColumn()source public
fetchColumn( integer $position )
Возвращает значение результата в позиции.
Параметры
- integer
$position - Позиционный номер столбца для извлечения в результате
Возвращает
mixed|falseВозвращает конкретное значение столбца, указанного в $position
getInnerStatement()source public
getInnerStatement( )
Возвращает объект оператора, который был декорирован этим классом.
Возвращает
Cake\Database\StatementInterface|PDOStatementgetIterator()source public
getIterator( )
Операторы итерируемы как массивы, этот метод вернет объект итератора для обхода всех элементов результата.
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
foreach ($statement as $row) {
//do stuff
} Возвращает
Cake\Database\StatementInterface|PDOStatementРеализация
IteratorAggregate::getIterator() lastInsertId()source public
lastInsertId( string|null $table = null , string|null $column = null )
Возвращает последний вставленный первичный ключ с помощью этого оператора.
Параметры
- string|null
$tableнеобязательно null - имя таблицы или последовательности, чтобы получить последнее вставленное значение
- string|null
$columnнеобязательно null - имя столбца, представляющего первичный ключ
Возвращает
string|integerРеализация
Cake\Database\StatementInterface::lastInsertId() rowCount()source public
rowCount( )
Возвращает количество строк, затронутых этим SQL-оператором.
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->rowCount()); // will show 1 Возвращает
integerРеализация
Cake\Database\StatementInterface::rowCount() Методы, используемые из Cake\Database\TypeConverterTrait
cast()source public
cast( mixed $value , Cake\Database\Type|string $type )
Преобразует данное значение в подходящее значение базы данных на основе типа и возвращает соответствующий внутренний тип оператора
Параметры
- mixed
$value - Значение для преобразования
-
Cake\Database\Type|string$type - Название типа или экземпляр типа для использования.
Возвращает
arrayСписок, содержащий преобразованное значение и внутренний тип
matchTypes()source public
matchTypes( array $columns , array $types )
Сопоставляет столбцы с соответствующими типами
И $columns, и $types должны быть либо числовыми, либо строковыми ключами одновременно.
Параметры
- array
$columns - список или ассоциативный массив столбцов и параметров, которые будут привязаны к типам
- array
$types - список или ассоциативный массив типов
Возвращает
arrayПодробное описание свойств
$_driversource
protected Cake\Database\Driver|null
Ссылка на объект драйвера, связанный с этим оператором.
$_statementsource
protected Cake\Database\StatementInterface|PDOStatement|null
Реализация экземпляра оператора, например PDOStatement или любой другой пользовательской реализации.
Подробное описание магических свойств
$queryStringsource
public только для чтения строка
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.6/class-Cake.Database.Statement.StatementDecorator.html