Класс 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Подробное описание методов
__constructsource public
__construct( Cake\Database\StatementInterface|null $statement null , Cake\Database\Driver|null $driver null )
Конструктор
Параметры
-
Cake\Database\StatementInterface|null$statementнеобязательный null - Реализация оператора, например PDOStatement
-
Cake\Database\Driver|null$driverнеобязательный null - Экземпляр драйвера
__getsource public
__get( string $property )
Магический геттер для возвращения $queryString как только для чтения.
Параметры
- строка
$property - внутреннее свойство для получения
Возвращает
mixedсмешанный тип
bindsource public
bind( array $params , array $types )
Связывает набор значений с объектом оператора с соответствующим типом.
Параметры
- массив
$params - список значений для связывания
- массив
$types - список типов для использования, ключи должны соответствовать ключам в $params
Реализация
Cake\Database\StatementInterface::bind() bindValuesource 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');
Параметры
- строка|целое число
$column - имя или позиция параметра для связывания
- смешанный тип
$value - Значение для связывания с переменной в запросе
- строка
$typeнеобязательный 'строка' - имя настроенного класса типа
Реализация
Cake\Database\StatementInterface::bindValue() closeCursorsource public
closeCursor( )
Закрывает указатель в базе данных, освобождая все ресурсы и память, выделенные для него. В большинстве случаев вам не нужно вызывать этот метод, так как он автоматически вызывается после извлечения всех результатов из набора результатов.
Реализация
Cake\Database\StatementInterface::closeCursor() columnCountsource public
columnCount( )
Возвращает количество столбцов, которые будут содержать результаты этого оператора.
Пример:
$statement = $connection->prepare('SELECT id, title from articles'); $statement->execute(); echo $statement->columnCount(); // outputs 2
Возвращает
integerцелое число
Реализация
Cake\Database\StatementInterface::columnCount() countsource public
count( )
Операторы могут быть переданы в качестве аргумента для count() для возвращения количества затронутых строк с последнего выполнения.
Возвращает
integerцелое число
Реализация
Cake\Database\StatementInterface::count() errorCodesource public
errorCode( )
Возвращает код ошибки для последней ошибки, произошедшей при выполнении этого оператора.
Возвращает
integer|stringцелое число|строка
Реализация
Cake\Database\StatementInterface::errorCode() errorInfosource public
errorInfo( )
Возвращает информацию об ошибке для последней ошибки, произошедшей при выполнении этого оператора.
Возвращает
arrayмассив
Реализация
Cake\Database\StatementInterface::errorInfo() executesource public
execute( array|null $params null )
Выполняет оператор, отправляя SQL-запрос в базу данных. Он может необязательно принимать массив или аргументы для привязки к переменным запроса. Обратите внимание, что привязка параметров из этого метода не будет выполнять какое-либо пользовательское преобразование типа, как обычно происходит при вызове bindValue.
Параметры
- массив|null
$paramsнеобязательный null - список значений для привязки к запросу
Возвращает
booleantrue при успехе, false в противном случае
Реализация
Cake\Database\StatementInterface::execute() fetchsource public
fetch( string $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']
Параметры
- строка
$typeнеобязательный 'num' - 'num' для позиционных столбцов, assoc для именованных столбцов
Возвращает
array|falseМассив результатов, содержащий столбцы и значения, или false, если результатов больше нет
Реализация
Cake\Database\StatementInterface::fetch() fetchAllsource public
fetchAll( string $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']]
Параметры
- строка
$typeнеобязательный 'num' - num для извлечения столбцов в виде позиционных ключей или assoc для имен столбцов в качестве ключей
Возвращает
arrayСписок всех результатов из базы данных для этого оператора
Реализация
Cake\Database\StatementInterface::fetchAll() getInnerStatementsource public
getInnerStatement( )
Возвращает объект оператора, который был декорирован этим классом.
Возвращает
Cake\Database\StatementInterface\Cake\Database\StatementInterface
getIteratorsource public
getIterator( )
Операторы итерируемы как массивы, этот метод вернёт объект итератора для перебора всех элементов в результате.
Пример:
$statement = $connection->prepare('SELECT id, title from articles'); foreach ($statement as $row) { //do stuff }
Возвращает
Iterator\Iterator
Реализация
IteratorAggregate::getIterator() lastInsertIdsource public
lastInsertId( string|null $table null , string|null $column null )
Возвращает последний вставленный первичный ключ, используемый этим оператором.
Параметры
- строка|null
$tableнеобязательный null - имя таблицы или последовательности для получения последнего значения вставки
- строка|null
$columnнеобязательный null - имя столбца, представляющего первичный ключ
Возвращает
stringстрока
Реализация
Cake\Database\StatementInterface::lastInsertId() rowCountsource public
rowCount( )
Возвращает количество строк, затронутых этим SQL-запросом.
Пример:
$statement = $connection->prepare('SELECT id, title from articles'); $statement->execute(); print_r($statement->rowCount()); // will show 1
Возвращает
integerint
Реализация
Cake\Database\StatementInterface::rowCount() Методы, используемые из Cake\Database\TypeConverterTrait
castsource public
cast( mixed $value , Cake\Database\Type|string $type )
Преобразует данное значение в подходящее значение базы данных на основе типа и возвращает соответствующий внутренний тип оператора.
Параметры
- mixed
$value - Значение для преобразования
-
Cake\Database\Type|string$type - Имя типа или экземпляр типа для использования.
Возвращает
arrayСписок, содержащий преобразованное значение и внутренний тип
matchTypessource public
matchTypes( array $columns , array $types )
Сопоставляет столбцы соответствующим типам
И $columns, и $types должны быть либо числовыми, либо строковыми ключами одновременно.
Параметры
- array
$columns - Список или ассоциативный массив столбцов и параметров, которые будут связаны с типами
- array
$types - Список или ассоциативный массив типов
Возвращает
arrayмассив
Краткое описание свойств
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Database.Statement.StatementDecorator.html