Php mysqli wait timeout

PHP mysqli options() Function

The options() / mysqli_options() function is used to set extra connect options and affect behavior for a connection.

Note: This function should be called after init() and before real_connect().

Syntax

Object oriented style:

Procedural style:

Parameter Values

  • MYSQLI_OPT_CONNECT_TIMEOUT — Set connection timeout in seconds
  • MYSQLI_OPT_LOCAL_INFILE — Enable/Disable use of LOAD LOCAL INFILE
  • MYSQLI_INIT_COMMAND — Set a command to execute after connecting to MySQL server
  • MYSQLI_READ_DEFAULT_FILE — Set read options from named file instead of my.cnf
  • MYSQLI_READ_DEFAULT_GROUP — Set read options from named group from my.cnf or the file specified in MYSQLI_READ_DEFAULT_FILE
  • MYSQLI_SERVER_PUBLIC_KEY — Set RSA public key file used with SHA-256 based authentication
  • MYSQLI_OPT_NET_CMD_BUFFER_SIZE — only for mysqlnd
  • MYSQLI_OPT_NET_READ_BUFFER_SIZE — only for mysqlnd
  • MYSQLI_OPT_INT_AND_FLOAT_NATIVE — only for mysqlnd
  • MYSQLI_OPT_SSL_VERIFY_SERVER_CERT — only for mysqlnd

Technical Details

Return Value: TRUE on success. FALSE on failure
PHP Version: 5+
PHP Changelog: PHP 5.5: Added MYSQLI_SERVER_PUBLIC_KEY option
PHP 5.3: Added MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, and MYSQLI_OPT_SSL_VERIFY_SERVER_CERT options

Example — Procedural style

Set extra connect options:

// Specify connection timeout
mysqli_options($con, MYSQLI_OPT_CONNECT_TIMEOUT, 10);

// Specify read options from named file instead of my.cnf
mysqli_options($con, MYSQLI_READ_DEFAULT_FILE, «myfile.cnf»);

Источник

mysqli_options

Used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after mysqli_init() and before mysqli_real_connect() .

Parameters

Procedural style only: A mysqli object returned by mysqli_connect() or mysqli_init()

The option that you want to set. It can be one of the following values:

Valid options
Name Description
MYSQLI_OPT_CONNECT_TIMEOUT Connection timeout in seconds
MYSQLI_OPT_READ_TIMEOUT Command execution result timeout in seconds. Available as of PHP 7.2.0.
MYSQLI_OPT_LOCAL_INFILE Enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND Command to execute after when connecting to MySQL server
MYSQLI_SET_CHARSET_NAME The charset to be set as default.
MYSQLI_READ_DEFAULT_FILE Read options from named option file instead of my.cnf Not supported by mysqlnd.
MYSQLI_READ_DEFAULT_GROUP Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE . Not supported by mysqlnd.
MYSQLI_SERVER_PUBLIC_KEY RSA public key file used with the SHA-256 based authentication.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE The size of the internal command/network buffer. Only valid for mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE Convert integer and float columns back to PHP numbers. Only valid for mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT Whether to verify server certificate or not.

Return Values

Returns true on success or false on failure.

Errors/Exceptions

If mysqli error reporting is enabled ( MYSQLI_REPORT_ERROR ) and the requested operation fails, a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT , a mysqli_sql_exception is thrown instead.

Examples

Notes

Note:

MySQLnd always assumes the server default charset. This charset is sent during connection hand-shake/authentication, which mysqlnd will use.

Libmysqlclient uses the default charset set in the my.cnf or by an explicit call to mysqli_options() prior to calling mysqli_real_connect() , but after mysqli_init() .

See Also

  • mysqli_init() — Initializes MySQLi and returns an object for use with mysqli_real_connect()
  • mysqli_real_connect() — Opens a connection to a mysql server

User Contributed Notes 6 notes

There is an undocumented option: MYSQLI_OPT_READ_TIMEOUT. This is similar to MYSQLI_OPT_CONNECT_TIMEOUT in theory, but has a slightly different application. Connection timeout only specifies the wait time for the initial TCP connection. Once that is created, the timeout no longer applies. Read timeout, however, is from the time the TCP connection is created until the first packet of actual data is received. There are instances where a TCP connection can be established, but the MySQL server stalls indefinitely, preventing execution from ever returning to PHP. Specifying a read timeout alleviates this condition, whereas connect timeout wouldn’t.

If the MYSQLI_OPT_READ_TIMEOUT constant isn’t defined, it is still supported on versions where that isn’t the case. You can define it yourself in older PHP versions with the following code.

if (! defined ( ‘MYSQLI_OPT_READ_TIMEOUT’ )) define ( ‘MYSQLI_OPT_READ_TIMEOUT’ , 11 );
>
?>

You can then use read timeout the same way you could a connect timeout as follows. Please note that since these are two different timeout values for two different parts of the entire connection process, the timeouts do stack (eg: 10 seconds connect timeout + 10 seconds read timeout = maximum possible timeout of 20 seconds)

//create the object
$connection = mysqli_init ();

//specify the connection timeout
$connection -> options ( MYSQLI_OPT_CONNECT_TIMEOUT , 10 );

//specify the read timeout
$connection -> options ( MYSQLI_OPT_READ_TIMEOUT , 10 );

//initiate the connection to the server, using both previously specified timeouts
$connection -> real_connect ( ‘server’ , ‘user’ , ‘pass’ , ‘database’ );
?>

Источник

Предопределённые константы

Перечисленные ниже константы определены данным модулем и могут быть доступны только в том случае, если PHP был собран с поддержкой этого модуля или же в том случае, если данный модуль был динамически загружен во время выполнения.

MYSQLI_READ_DEFAULT_GROUP

Читать опции из указанной группы в файле my.cnf или файле, указанном с помощью MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Читать опции из указанного файла, вместо my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Время ожидания подключения в секундах.

MYSQLI_OPT_READ_TIMEOUT

Время ожидания результата выполнения команды в секундах. Доступно с PHP 7.2.0.

MYSQLI_OPT_LOCAL_INFILE

Включает команду LOAD LOCAL INFILE .

MYSQLI_OPT_INT_AND_FLOAT_NATIVE

Преобразует целые и плавающие столбцы обратно в числа PHP. Корректно работает только с mysqlnd.

MYSQLI_OPT_NET_CMD_BUFFER_SIZE

Размер внутреннего буфера команды/сети. Корректно работает только с mysqlnd.

MYSQLI_OPT_NET_READ_BUFFER_SIZE

Максимальный размер блока чтения в байтах при чтении тела пакета команд MySQL. Only valid for mysqlnd.

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

Требуется MySQL 5.1.10 и выше

MYSQLI_INIT_COMMAND

Команда, которая будет выполнена при подключении к серверу MySQL. Эта команда будет повторно вызвана при переподключении.

MYSQLI_CLIENT_SSL

Использовать SSL (шифрованный протокол). Эта опция не может быть установлена приложениями; она устанавливается внутри библиотеки клиента MySQL.

MYSQLI_CLIENT_COMPRESS

MYSQLI_CLIENT_INTERACTIVE

Ждать interactive_timeout секунд (вместо wait_timeout ) бездействия перед закрытием соединения. Переменная сессии клиента wait_timeout будет установлена в значение переменной сессии interactive_timeout .

MYSQLI_CLIENT_IGNORE_SPACE

Разрешить пробелы после имён функций. Делает все имена функций зарезервированными словами.

MYSQLI_CLIENT_NO_SCHEMA

Запретить синтаксис db_name.tbl_name.col_name .

MYSQLI_CLIENT_MULTI_QUERIES

Разрешить выполнение в одном вызове функции mysqli_query() нескольких запросов, разделённых точкой с запятой.

MYSQLI_STORE_RESULT

Для использования буферизации наборов данных. Значение равно 0 .

MYSQLI_USE_RESULT

Для использования небуферизированных наборов данных. Значение равно 1 .

MYSQLI_ASSOC

Результат возвращается в виде ассоциативного массива с именами полей в качестве индексов.

Результат возвращается в виде индексного массива.

MYSQLI_BOTH

Результат возвращается в виде массива, который содержит как числовой, так и ассоциативный индексы.

MYSQLI_NOT_NULL_FLAG

Информирует о том, что поле определено как NOT NULL .

MYSQLI_PRI_KEY_FLAG

Поле является частью первичного индекса.

MYSQLI_UNIQUE_KEY_FLAG

Поле является частью уникального индекса.

MYSQLI_MULTIPLE_KEY_FLAG

Поле является частью индекса.

MYSQLI_BLOB_FLAG

MYSQLI_UNSIGNED_FLAG

Поле определено как UNSIGNED .

MYSQLI_ZEROFILL_FLAG

Поле определено как ZEROFILL .

MYSQLI_AUTO_INCREMENT_FLAG

Поле определено как AUTO_INCREMENT .

MYSQLI_TIMESTAMP_FLAG

Поле определено как TIMESTAMP .

MYSQLI_SET_FLAG

MYSQLI_NUM_FLAG

Поле определено как NUMERIC .

MYSQLI_PART_KEY_FLAG

Поле является частью мульти-индекса.

MYSQLI_GROUP_FLAG

Поле является частью GROUP BY .

MYSQLI_TYPE_DECIMAL

Поле определено как DECIMAL .

MYSQLI_TYPE_NEWDECIMAL

Математическая точность полей DECIMAL или NUMERIC (MySQL 5.0.3 и выше).

MYSQLI_TYPE_BIT

Поле определено как BIT (MySQL 5.0.3 и выше).

MYSQLI_TYPE_TINY

Поле определено как TINYINT .

MYSQLI_TYPE_SHORT

Поле определено как SMALLINT .

MYSQLI_TYPE_LONG

MYSQLI_TYPE_FLOAT

Поле определено как FLOAT .

MYSQLI_TYPE_DOUBLE

Поле определено как DOUBLE .

MYSQLI_TYPE_NULL

Поле определено как DEFAULT NULL .

MYSQLI_TYPE_TIMESTAMP

Поле определено как TIMESTAMP .

MYSQLI_TYPE_LONGLONG

Поле определено как BIGINT .

MYSQLI_TYPE_INT24

Поле определено как MEDIUMINT .

MYSQLI_TYPE_DATE

MYSQLI_TYPE_TIME

MYSQLI_TYPE_DATETIME

Поле определено как DATETIME .

MYSQLI_TYPE_YEAR

MYSQLI_TYPE_NEWDATE

MYSQLI_TYPE_INTERVAL

Поле определено как INTERVAL

MYSQLI_TYPE_ENUM

MYSQLI_TYPE_SET

MYSQLI_TYPE_TINY_BLOB

Поле определено как TINYBLOB .

MYSQLI_TYPE_MEDIUM_BLOB

Поле определено как MEDIUMBLOB .

MYSQLI_TYPE_LONG_BLOB

Поле определено как LONGBLOB .

MYSQLI_TYPE_BLOB

MYSQLI_TYPE_VAR_STRING

Поле определено как VARCHAR .

MYSQLI_TYPE_STRING

Поле определено как CHAR или BINARY

MYSQLI_TYPE_CHAR

Поле определено как TINYINT . Для CHAR смотрите MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY

Поле определено как GEOMETRY .

MYSQLI_TYPE_JSON

Поле определено как JSON . Действительно только для mysqlnd и MySQL 5.7.8 и выше.

MYSQLI_NEED_DATA

Имеются ещё данные, доступные для связанных переменных.

MYSQLI_NO_DATA

Больше нет доступных данных для связанных переменных.

MYSQLI_DATA_TRUNCATED

Произошло усечение данных. Доступно начиная с MySQL 5.0.5.

MYSQLI_ENUM_FLAG

MYSQLI_BINARY_FLAG

Поле определено как BINARY .

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME

MYSQLI_REPORT_INDEX

Уведомлять, если индекс, используемый в запросе, не указан либо превышает максимум.

MYSQLI_REPORT_ERROR

Уведомлять об ошибках вызова функций mysqli.

MYSQLI_REPORT_STRICT

Обрабатывать mysqli_sql_exception как ошибки, а не как предупреждения.

MYSQLI_REPORT_ALL

MYSQLI_REPORT_OFF

MYSQLI_DEBUG_TRACE_ENABLED

Установлено в 1, если используется функция mysqli_debug() .

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED

MYSQLI_SERVER_QUERY_NO_INDEX_USED

MYSQLI_SERVER_PUBLIC_KEY

MYSQLI_REFRESH_GRANT

Обновляет таблицу прав доступа.

MYSQLI_REFRESH_LOG

Сбрасывает логи, точно так же, как и SQL выражение FLUSH LOGS .

MYSQLI_REFRESH_TABLES

Очищает кеш таблицы, точно так же, как и SQL выражение FLUSH TABLES .

MYSQLI_REFRESH_HOSTS

Очищает кеш хоста, точно так же, как и SQL выражение FLUSH HOSTS .

MYSQLI_REFRESH_REPLICA

Алиас константы MYSQLI_REFRESH_SLAVE . Доступна, начиная с PHP 8.1.0.

MYSQLI_REFRESH_STATUS

Сбрасывает переменные состояния, точно так же, как и SQL выражение FLUSH STATUS .

MYSQLI_REFRESH_THREADS

MYSQLI_REFRESH_SLAVE

На ведомом реплицируемом сервере (slave): сбросить информацию ведущего сервера (master) и перезапустить ведомый сервер. Аналогично выполнению SQL выражения RESET SLAVE .

MYSQLI_REFRESH_MASTER

На ведущем реплицируемом сервере (master): удалить бинарные файлы логов в бинарном индексе логов, и обрезать файл индекса. Аналогично выполнению SQL выражения RESET MASTER .

MYSQLI_TRANS_COR_AND_CHAIN

MYSQLI_TRANS_COR_AND_NO_CHAIN

MYSQLI_TRANS_COR_RELEASE

MYSQLI_TRANS_COR_NO_RELEASE

MYSQLI_TRANS_START_READ_ONLY

Начинает транзакцию как «START TRANSACTION READ ONLY» с mysqli_begin_transaction() .

MYSQLI_TRANS_START_READ_WRITE

Начинает транзакцию как «START TRANSACTION READ WRITE» с mysqli_begin_transaction() .

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Начинает транзакцию как «START TRANSACTION WITH CONSISTENT SNAPSHOT» с mysqli_begin_transaction() .

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT

Требуется MySQL 5.6.5 и выше

MYSQLI_IS_MARIADB

Определяет, собран ли модуль mysqli с клиентской библиотекой MariaDB. Доступно, начиная с PHP 8.1.2.

Источник

Читайте также:  Devexpress html editor winforms
Оцените статью