(PHP 5, PHP 7, PHP 8)
mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Изменяет поведение подготовленного запроса
Объектно-ориентированный стиль
Процедурный стиль
Функция изменяет поведение подготовленного запроса. Функцию вызывают несколько раз для установки нескольких атрибутов.
stmt
Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().
attribute
Атрибут, который требуется установить. Атрибут принимает следующие значения:
Символ | Описание |
---|---|
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Если значение равно true , то функция mysqli_stmt_store_result() обновляет метаданные значением MYSQL_FIELD->max_length . |
MYSQLI_STMT_ATTR_CURSOR_TYPE | Тип курсора, который нужно открыть для запроса при вызове функции mysqli_stmt_execute(). Параметр value принимает значения MYSQLI_CURSOR_TYPE_NO_CURSOR (по умолчанию) или MYSQLI_CURSOR_TYPE_READ_ONLY . |
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Количество строк, которые необходимо получить с сервера с курсором за один раз. Параметр value принимает значения в диапазоне от 1 до максимального значения беззнакового целого числа long. По умолчанию значение равно 1. |
Если опцию MYSQLI_STMT_ATTR_CURSOR_TYPE
указали вместе с MYSQLI_CURSOR_TYPE_READ_ONLY
, то курсор открывается для запроса при вызове функции mysqli_stmt_execute(). Если уже есть открытый курсор из предыдущего вызова функции mysqli_stmt_execute(), то курсор закроется перед открытием нового. Функция mysqli_stmt_reset() также закрывает любой открытый курсор перед подготовкой запроса к повторному выполнению. Функция mysqli_stmt_free_result() закрывает любой открытый курсор.
Если курсор открывается для подготовленного запроса, вызывать функцию mysqli_stmt_store_result() не обязательно.
value
Значение, которое функция присвоит атрибуту.
Функция возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR
) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT
, вместо этого будет выброшено исключение mysqli_sql_exception.