Справочник функций
PHP Manual

Расширение MySQL (Improved)

Введение

Расширение mysqli позволяет вам получить доступ к функциональности, которую предоставляет MySQL версии 4.1 и выше. Больше информации о сервере баз данных MySQL вы можете получить по адресу » http://www.mysql.com/.

Документация MySQL находится по адресу » http://dev.mysql.com/doc/.

Некоторые части данной документации включены из руководства по MySQL с разрешения MySQL AB.

Требования

Чтобы эти функции были доступны, PHP должен быть собран с поддержкой расширения mysqli.

Note: Расширение mysqli разработано для работы с MySQL версии 4.1.3 и выше. Для работы с более старыми версиями, обратитесь к документации к расширению MySQL.

Установка

Для установки расширения mysqli для PHP, используйте конфигурационную директиву --with-mysqli=mysql_config_path/mysql_config, гдеmysql_config_path - путь к утилите mysql_config, которая поставляется с MySQL версии 4.1 и больше.

Если вы хотите установить расширение mysql вместе с mysqli, вы должны использовать одинаковые клиентские библиотеки во избежание возможных конфликтов.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

MySQLi Параметры конфигурации
Имя Значение по-умолчанию Область изменения История изменений
mysqli.max_links "-1" PHP_INI_SYSTEM Доступен начиная с PHP 5.0.0.
mysqli.default_port "3306" PHP_INI_ALL Доступен начиная с PHP 5.0.0.
mysqli.default_socket NULL PHP_INI_ALL Доступен начиная с 5.0.0.
mysqli.default_host NULL PHP_INI_ALL Доступен начиная с PHP 5.0.0.
mysqli.default_user NULL PHP_INI_ALL Доступен начиная с PHP 5.0.0.
mysqli.default_pw NULL PHP_INI_ALL Доступен начиная с PHP 5.0.0.

Дальнейшие детали и определения PHP_INI_* констант смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

Максимальное число соединений MySQL на процесс.

mysqli.default_port string

TCP порт, используемый по умолчанию для соединения с сервером баз данных если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT, директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT, которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysqli.default_socket string

Имя сокета по умолчанию, которое используется для соединения с локальной базой данных если имя сокета было не указано явно.

mysqli.default_host string

Имя сервера, которое используется если имя не было указано явно. Это имя не используется в безопасном режиме.

mysqli.default_user string

Имя пользователя по умолчанию, используемое если имя не было указано явно. Игнорируется в безопасном режиме.

mysqli.default_pw string

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

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

mysqli

Представляет соединение между PHP и базой данных MySQL.

Конструктор

  • mysqli - конструктор нового объекта mysqli

Методы

  • autocommit - включает или выключает автофиксацию изменений базы данных

  • change_user - изменение пользователя для выбранного соединения с базой данных

  • character_set_name - возвращает кодировку по-умолчанию (default character set) для соединения с базой данных

  • close - закрывает открытое ранее соединение

  • commit - фиксирует текущую транзакцию

  • connect - открывает новое соединение с сервером баз данных MySQL

  • debug - выполняет операции по отладке

  • dump_debug_info - возвращает отладочную информацию

  • get_client_info - возвращает версию клиента

  • get_host_info - возвращает используемый тип соединения

  • get_server_info - возвращает информацию о сервере MySQL

  • get_server_version - возвращает версию сервера MySQL

  • init - инициализирует объект mysqli

  • info - получает информацию о последнем выполненном запросе

  • kill - требует от сервера убить mysql-поток

  • multi_query - выполняет множественный запрос

  • more_results - проверяет наличие дополнительных результатов в выполняемом мульти-запросе

  • next_result - получает следующий результат в выполняемом мульти-запросе

  • options - устанавливает опции

  • ping - проверяет соединение с сервером или переподключается, если соединение недоступно

  • prepare - подготавливает SQL-запрос

  • query - выполняет запрос

  • real_connect - создает соединение с сервером MySQL

  • escape_string - экранирует спецсимволы в строке для использования в SQL-выражениях

  • rollback - откат текущей транзакции

  • select_db - выбирает базу данных по-умолчанию

  • set_charset - устанавливает кодировку клиента по-умолчанию

  • ssl_set - устанавливает параметры ssl

  • stat - получает текущее состояние системы

  • stmt_init - инициализирует выражение для использования с mysqli_stmt_prepare

  • store_result - получает набор данных от последнего запроса

  • thread_safe - возвращает информацию о том, собран ли клиент с поддеркой надежных потоков

  • use_result - получает небуферизованный набор данных из последнего запроса

Свойства

  • affected_rows - получает количество затронутых рядов предыдущей MySQL-операцией

  • client_info - возвращает версию MySQL-клиента в виде строки

  • client_version - возвращает версию MySQL-клиента в целочисленном виде

  • errno - возвращает номер ошибки для последнего вызова функции

  • error - возвращает строку, содержащую текст ошибки для последнего вызова функции

  • field_count - возвращает количество колонок в последней выборке

  • host_info - возвращает строку с представлением используемого типа соединения

  • info - возвращает информацию о последнем выполненном запросе

  • insert_id - возвращает автоматически созданный id, использованый в последнем запросе

  • protocol_version - возвращает версию использованного протокола MySQL

  • server_info - возвращает строку, которая содержит номер версии сервера

  • server_version - возвращает целочисленный номер версии сервера

  • sqlstate - возвращает строку, содержащую код ошибки SQLSTATE для последней ошибки

  • thread_id - возвращает ID потока для текущего соединения

  • warning_count - возвращает количество предупреждений (warnings), сгенерированных во время выполнения последнего SQL-выражения

mysqli_stmt

Представляет подготовленное выражение.

Методы

  • bind_param - присваивает переменные подготовленному выражению

  • bind_result - присваивает переменные подготовленному выражению для хранилища результатов

  • close - закрывает подготовленное выражение

  • data_seek - переходит на произвольную строку в наборе данных выражения

  • execute - выполняет подготовленное выражение

  • fetch - получает результат из подготовленного выражения в связанные переменные

  • free_result - освобождает занятую результатом память для переданного дескриптора выражения

  • prepare - подготавливает SQL-запрос

  • reset - сбрасывает подготовленное выражение

  • result_metadata - получает набор данных из подготовленного выражения для получения метаинформации

  • send_long_data - отправляет информацию на сервер по частям

  • store_result - полностью буферизирует набор данных из подготовленного запроса

Свойства

  • affected_rows - возвращает количество затронутых в результате последнего выполнения выражения рядов

  • errno - возвращает код ошибки для последнего выполненного выражения

  • error - возвращает текст ошибки для последнего выполненного выражения

  • field_count - возвращает количество полей в результате запроса

  • id - возвращает идентификатор выражения

  • insert_id - возвращает значение, созданное подготовленным выражением поля с AUTO_INCREMENT

  • num_rows - возвращает количество рядов в результате запроса

  • param_count - возвращает количество параметров для переданного подготовленного выражения

  • sqlstate - возвращает строку, содержащую код ошибки SQLSTATE для последнего вызова выражения

mysqli_result

Представляет набор данных, полученныйх в результате запроса к базе данных.

Методы

  • close - закрывает набор данных

  • data_seek - передвигает внутренний указатель результата

  • fetch_array - получает ряд из набора данных в виде ассоциативного массива, нумерованного массива, или обоих

  • fetch_assoc - получает ряд из набора данных в виде ассоциативного массива

  • fetch_field - получает информацию о столбце из набора данных

  • fetch_fields - получает информацию о всех столбцах из набора данных

  • fetch_field_direct - получает информацию об определенном столбце

  • fetch_object - получает ряд из набора данных в виде объекта

  • fetch_row - получает ряд из набора данных в виде нумерованного массива

  • field_seek - установить указатель на результат смещенным на определенное количество полей

  • free_result - освобождает память, занимаемую результатом запроса

Свойства

  • current_field - возвращает смещение текущего указателя

  • field_count - возвращает количество полей в наборе данных

  • lengths - возвращает массив значений длины столбцов

  • num_rows - возвращает количество рядов в наборе данных

  • type - возвращает MYSQLI_STORE_RESULT или MYSQLI_USE_RESULT

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

Константы MySQLi
Имя Описание
MYSQLI_READ_DEFAULT_GROUP (integer) Читать опции из указанной группы в файле `my.cnf' или файле указанном с помощью MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (integer) Читать опции из указанного файла вместо my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (integer) Тайм-аут подключения в секундах.
MYSQLI_OPT_LOCAL_INFILE (integer) Включает команду LOAD LOCAL INFILE.
MYSQLI_INIT_COMMAND (integer) Команда, которая будет выполнена при подключении к серверу MySQL. Эта команда будет повторно вызвана при переподключении.
MYSQLI_CLIENT_SSL (integer) Использовать SSL (шифрованый протокол). Эта опция не может быть уставовлена приложениями; она устанавливается внутри библиотеки клиента MySQL.
MYSQLI_CLIENT_COMPRESS (integer) Использовать компрессию.
MYSQLI_CLIENT_INTERACTIVE (integer) Ждать interactive_timeout секунд (вместо wait_timeout) бездействия перед закрытием соединения. Переменная сессии клиента wait_timeout будет установлена в значение переменной сессии interactive_timeout.
MYSQLI_CLIENT_IGNORE_SPACE (integer) Разрешить пробелы после имен функций. Делает все имена функций зарезервированными словами.
MYSQLI_CLIENT_NO_SCHEMA (integer) Запретить синтаксис db_name.tbl_name.col_name.
MYSQLI_CLIENT_MULTI_QUERIES (integer)
MYSQLI_STORE_RESULT (integer) Для использования буферизации наборов данных.
MYSQLI_USE_RESULT (integer) Для использования небуферизированных наборов данных.
MYSQLI_ASSOC (integer) Результат возвращается в виде ассоциативного массива с именами полей в качестве индексов.
MYSQLI_NUM (integer) Результат возвращается в виде индексного массива.
MYSQLI_BOTH (integer) Результат возвращается в виде массива, который содержит как числовой, так ассоциативный (с именами полей) индексы.
MYSQLI_NOT_NULL_FLAG (integer) Информирует о том, что поле определено как NOT NULL.
MYSQLI_PRI_KEY_FLAG (integer) Поле является частью первичного индекса.
MYSQLI_UNIQUE_KEY_FLAG (integer) Поле является частью уникального индекса.
MYSQLI_MULTIPLE_KEY_FLAG (integer) Поле является частью индекса.
MYSQLI_BLOB_FLAG (integer) Поле определено как BLOB.
MYSQLI_UNSIGNED_FLAG (integer) Поле определено как UNSIGNED.
MYSQLI_ZEROFILL_FLAG (integer) Поле определено как ZEROFILL.
MYSQLI_AUTO_INCREMENT_FLAG (integer) Поле определено как AUTO_INCREMENT.
MYSQLI_TIMESTAMP_FLAG (integer) Поле определено как TIMESTAMP.
MYSQLI_SET_FLAG (integer) Поле определено как SET.
MYSQLI_NUM_FLAG (integer) Поле определено как NUMERIC.
MYSQLI_PART_KEY_FLAG (integer) Поле является честью мультииндекса.
MYSQLI_GROUP_FLAG (integer) Поле является частью GROUP BY.
MYSQLI_TYPE_DECIMAL (integer) Поле определено как DECIMAL.
MYSQLI_TYPE_NEWDECIMAL (integer) Математическая точность полей DECIMAL или NUMERIC (MySQL 5.0.3 и выше).
MYSQLI_TYPE_BIT (integer) Поле определено как BIT (MySQL 5.0.3 и выше).
MYSQLI_TYPE_TINY (integer) Поле определено как TINYINT.
MYSQLI_TYPE_SHORT (integer) Поле определено как INT.
MYSQLI_TYPE_LONG (integer) Поле определено как INT.
MYSQLI_TYPE_FLOAT (integer) Поле определено как FLOAT.
MYSQLI_TYPE_DOUBLE (integer) Поле определено как DOUBLE.
MYSQLI_TYPE_NULL (integer) Поле определено как DEFAULT NULL.
MYSQLI_TYPE_TIMESTAMP (integer) Поле определено как TIMESTAMP.
MYSQLI_TYPE_LONGLONG (integer) Поле определено как BIGINT.
MYSQLI_TYPE_INT24 (integer) Поле определено как MEDIUMINT.
MYSQLI_TYPE_DATE (integer) Поле определено как DATE.
MYSQLI_TYPE_TIME (integer) Поле определено как TIME.
MYSQLI_TYPE_DATETIME (integer) Поле определено как DATETIME.
MYSQLI_TYPE_YEAR (integer) Поле определено как YEAR.
MYSQLI_TYPE_NEWDATE (integer) Поле определено как DATE.
MYSQLI_TYPE_ENUM (integer) Поле определено как ENUM.
MYSQLI_TYPE_SET (integer) Поле определено как SET.
MYSQLI_TYPE_TINY_BLOB (integer) Поле определено как TINYBLOB.
MYSQLI_TYPE_MEDIUM_BLOB (integer) Поле определено как MEDIUMBLOB.
MYSQLI_TYPE_LONG_BLOB (integer) Поле определено как LONGBLOB.
MYSQLI_TYPE_BLOB (integer) Поле определено как BLOB.
MYSQLI_TYPE_VAR_STRING (integer) Поле определено как VARCHAR.
MYSQLI_TYPE_STRING (integer) Поле определено как CHAR.
MYSQLI_TYPE_GEOMETRY (integer) Поле определено как GEOMETRY.
MYSQLI_NEED_DATA (integer) Имеются еще данные, доступные для связанных переменных.
MYSQLI_NO_DATA (integer) Больше нет доступных данных для связанных переменных.
MYSQLI_DATA_TRUNCATED (integer) Произошло урезание данных. Доступно начиная с PHP 5.1.0 и MySQL 5.0.5.

Examples

Все примеры, приведенные в документации к MySQLI используют базу данных world от MySQL AB. Базу данных world вы можете найти по адресу» http://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Table of Contents


Справочник функций
PHP Manual