Класс BufferedStatement
Декоратор оператора, который реализует буферизованные результаты.
Этот декоратор оператора сохранит полученные результаты в памяти, что позволит перематывать итератор и повторно использовать его.
Константы
-
stringFETCH_TYPE_ASSOC'assoc'
Используется для обозначения возврата ассоциативного массива в результате при вызове методов fetch
-
stringFETCH_TYPE_NUM'num'
Используется для обозначения возврата числовых индексов в результате при вызове методов fetch
-
stringFETCH_TYPE_OBJ'obj'
Используется для обозначения возврата объекта stdClass в результате при вызове методов fetch
Резюме свойств
- $_allFetched protected
boolЕсли true, все строки были получены
- $_driver protected
Cake\Database\DriverInterfaceДрайвер для оператора
- $_hasExecuted protected
boolВыполнялся ли данный оператор ранее
- $buffer protected
array<int, array>Кэш в памяти, содержащий результаты предыдущих итераторов
- $index protected
intТекущий индекс итератора.
- $queryString public @property-read
string - $statement protected
Cake\Database\StatementInterfaceДекорированный оператор
Резюме методов
-
__construct() public
Конструктор
-
__get() public
Магический геттер для возврата $queryString в качестве только для чтения.
-
_reset() protected
Сбросить все свойства
-
bind() public
Связывает набор значений с объектом оператора с соответствующим типом
-
bindValue() public
Присваивает значение позиционному или именованному переменной в подготовленном запросе. Если вы используете позиционные переменные, вам нужно начинать с индекса один, если вы используете именованные параметры, просто используйте имя в любом порядке.
-
cast() public
Преобразует заданное значение в подходящее значение базы данных на основе типа и возвращает соответствующий внутренний тип оператора
-
closeCursor() public
Закрывает указатель в базе данных, освобождая все ресурсы и память, выделенные для него. В большинстве случаев вам не нужно вызывать этот метод, так как он автоматически вызывается после извлечения всех результатов из набора результатов.
-
columnCount() public
Возвращает количество столбцов, которые будут содержать результаты этого оператора
-
count() public
Операторы могут передаваться в качестве аргумента для count() для возврата числа затронутых строк из последнего выполнения.
-
current() public
Возвращает текущую запись в итераторе
-
errorCode() public
Возвращает код ошибки для последней ошибки, которая произошла при выполнении данного оператора
-
errorInfo() public
Возвращает информацию об ошибке для последней ошибки, которая произошла при выполнении этого оператора
-
execute() public
Выполняет оператор, отправляя SQL-запрос в базу данных. Он может необязательно принимать массив или аргументы, которые нужно связать с переменными запроса. Обратите внимание, что привязка параметров из этого метода не будет выполнять никакого пользовательского преобразования типов, как это обычно происходит при вызове
bindValue -
fetch() public
Возвращает следующую строку для набора результатов после выполнения этого оператора. Строки могут извлекаться для отображения столбцов по именам или позициям. Если строк больше нет в наборе результатов, этот метод вернет false
-
fetchAll() public
Возвращает массив со всеми строками, полученными в результате выполнения этого оператора
-
fetchAssoc() public
-
fetchColumn() public
Возвращает значение результата в позиции.
-
getInnerStatement() public
Получить обернутый оператор
-
key() public
Возвращает текущий ключ в итераторе
-
lastInsertId() public
Возвращает последний вставленный первичный ключ, используемый этим оператором
-
matchTypes() public
Сопоставляет столбцы с соответствующими типами
-
next() public
Перемещает указатель итератора к следующему элементу
-
rewind() public
Перематывает коллекцию
-
rowCount() public
Возвращает количество строк, затронутых этим SQL-оператором
-
valid() public
Возвращает, есть ли у итератора дополнительные элементы
Краткое описание методов
__construct() public
__construct(Cake\Database\StatementInterface $statement, Cake\Database\DriverInterface $driver)
Конструктор
Параметры
-
Cake\Database\StatementInterface$statement Реализация инструкции, например, PDOStatement
-
Cake\Database\DriverInterface$driver Экземпляр драйвера
__get() public
__get(string $property): string|null
Магический геттер для возврата $queryString как доступного только для чтения.
Параметры
-
string$property Внутреннее свойство для получения
Возвращает
string|null_reset() protected
_reset(): void
Сброс всех свойств
Возвращает
voidbind() public
bind(array $params, array $types): void
Привязывает набор значений к объекту инструкции с соответствующим типом
Параметры
-
array$params -
array$types
Возвращает
voidbindValue() public
bindValue(string|int $column, mixed $value, string|int|null $type = 'string'): void
Присваивает значение позиционной или именованной переменной в подготовленном запросе. При использовании позиционных переменных необходимо начинать с индекса один, при использовании именованных параметров - просто используйте имя в любом порядке.
Не допускается комбинировать позиционные и именованные переменные в одном запросе
Примеры:
$statement->bindValue(1, 'a title');
$statement->bindValue('active', true, 'boolean');
$statement->bindValue(5, new \DateTime(), 'date'); Параметры
-
string|int$column -
mixed$value -
string|int|null$type optional
Возвращает
voidcast() public
cast(mixed $value, Cake\Database\TypeInterface|string|int $type = 'string'): array
Преобразует заданное значение в подходящее значение базы данных на основе типа и возвращает соответствующий внутренний тип инструкции
Параметры
-
mixed$value Значение для преобразования
-
Cake\Database\TypeInterface|string|int$type optional Имя типа или экземпляр типа для использования.
Возвращает
arraycloseCursor() public
closeCursor(): void
Закрывает курсор в базе данных, освобождая любые ресурсы и память, выделенные ему. В большинстве случаев вызывать этот метод не нужно, так как он автоматически вызывается после извлечения всех результатов из результирующего набора.
Возвращает
voidcolumnCount() public
columnCount(): int
Возвращает количество столбцов, которые будет содержать результат этой инструкции
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
echo $statement->columnCount(); // outputs 2 Возвращает
intcount() public
count(): int
Инструкции могут передаваться как аргумент для count(), чтобы вернуть количество затронутых строк после последнего выполнения.
Возвращает
intcurrent() public
current(): mixed
Возвращает текущую запись в итераторе
Возвращает
mixederrorCode() public
errorCode(): string|int
Возвращает код ошибки для последней ошибки, возникшей при выполнении этой инструкции
Возвращает
string|interrorInfo() public
errorInfo(): array
Возвращает информацию об ошибке для последней ошибки, возникшей при выполнении этой инструкции
Возвращает
arrayexecute() public
execute(array|null $params = null): bool
Выполняет инструкцию, отправляя SQL-запрос в базу данных. Дополнительно может принимать массив или аргументы, которые должны быть привязаны к переменным запроса. Обратите внимание, что привязка параметров из этого метода не будет выполнять какое-либо пользовательское преобразование типов, как это обычно происходит при вызове bindValue
Параметры
-
array|null$params optional
Возвращает
boolfetch() public
fetch(string|int $type = self::FETCH_TYPE_NUM): array|false
Возвращает следующую строку для результирующего набора после выполнения этой инструкции. Строки могут быть получены с столбцами как именами, так и позициями. Если в результирующем наборе не осталось строк, этот метод вернет false
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->fetch('assoc')); // will show ['id' => 1, 'title' => 'a title'] Параметры
-
string|int$type optional Тип для извлечения.
Возвращает
array|falsefetchAll() public
fetchAll(string|int $type = self::FETCH_TYPE_NUM): array|false
Возвращает массив со всеми строками, полученными в результате выполнения этой инструкции
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->fetchAll('assoc')); // will show [0 => ['id' => 1, 'title' => 'a title']] Параметры
-
string|int$type optional
Возвращает
array|falsefetchAssoc() public
fetchAssoc(): array
Возвращает
arrayfetchColumn() public
fetchColumn(int $position): mixed
Возвращает значение результата в позиции.
Параметры
-
int$position
Возвращает
mixedgetInnerStatement() public
getInnerStatement(): Cake\Database\StatementInterface
Получить завернутую инструкцию
Возвращает
Cake\Database\StatementInterfacekey() public
key(): mixed
Возвращает текущий ключ в итераторе
Возвращает
mixedlastInsertId() public
lastInsertId(string|null $table = null, string|null $column = null): string|int
Возвращает последний вставленный первичный ключ, используя эту инструкцию
Параметры
-
string|null$table optional -
string|null$column optional
Возвращает
string|intmatchTypes() public
matchTypes(array $columns, array $types): array
Сопоставляет столбцы с соответствующими типами
И $columns, и $types должны быть либо числовыми, либо строковыми одновременно.
Параметры
-
array$columns Список или ассоциативный массив столбцов и параметров, которые должны быть привязаны с типами
-
array$types Список или ассоциативный массив типов
Возвращает
arraynext() public
next(): void
Перемещает указатель итератора на следующий элемент
Возвращает
voidrewind() public
rewind(): void
Перематывает коллекцию
Возвращает
voidrowCount() public
rowCount(): int
Возвращает количество строк, затронутых этим SQL-запросом
Пример:
$statement = $connection->prepare('SELECT id, title from articles');
$statement->execute();
print_r($statement->rowCount()); // will show 1 Возвращает
intvalid() public
valid(): bool
Возвращает, содержит ли итератор больше элементов
Возвращает
boolПодробное описание свойств
$_allFetched protected
Если значение истинно, все строки были извлечены
Тип
bool$_driver protected
Драйвер для оператора
Тип
Cake\Database\DriverInterface$_hasExecuted protected
Выполнялся ли этот оператор ранее
Тип
bool$buffer protected
Кэш в оперативной памяти, содержащий результаты предыдущих итераторов
Тип
array<int, array>$index protected
Текущий индекс итератора.
Тип
int$queryString public @property-read
Тип
string$statement protected
Декорированный оператор
Тип
Cake\Database\StatementInterface
© 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/4.4/class-Cake.Database.Statement.BufferedStatement.html