Функции MySQL
LXIII. Функции MySQL
Эти функции дают доступ к серверам БД MySQL. Информацию о MySQL см. на http://www.mysql.com/
Документация по MySQL находится на http://www.mysql.com/documentation/
Требования
Чтобы иметь возможность работать с этими функциями, вы обязаны скомпилировать РНР с поддержкой MySQL.
Установка
С помощью опции конфигурации --with-mysql вы включаете доступ PHP к БД MySQL. Если вы используете эту опцию без специфицирования пути к MySQL, PHP будет использовать встроенные клиентские библиотеки MySQL. В PHP4 поддержка MySQL всегда включена; Если вы не специфицируете эту опцию конфигурации, используются связанные библиотеки. Пользователи, запускающие другие приложения, которые используют MySQL (например, при запуске PHP 3 и PHP 4 как конкурирующих модулей Аpache, или auth-mysql), всегда должны специфицировать путь к MySQL: --with-mysql=/path/to/mysql. Это заставит PHP использовать клиентские библиотеки, установленные MySQL, исключая любые конфликты.
Предупреждение! |
---|
При загрузке этого расширения вместе с расширением recode могут возникать проблемы со стартом и обломом РНР. См. расширение recode. |
Установка
Поведение функций MySQL определяется установками в глобальном файле конфигурации php.ini.
Таблица 1. Опции конфигурации MySQL
Имя | По умолчанию | Изменяемая |
---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
Дополнительные детали и определение констант PHP_INI_* см. в ini_set().
Вот краткое описание директив конфигурации.
- mysql.allow_persistent boolean
-
Разрешается ли постоянное соединение с MySQL.
- mysql.max_persistent integer
-
Максимальное количество постоянных MySQL-соединений на процесс.
- mysql.max_links integer
-
Максимальное количество постоянных MySQL-соединений на процесс, включая постоянные соединения.
- mysql.default_port string
-
Номер порта по умолчанию TCP для использования при соединении с сервером БД, если иной порт не специфицирован. Если порт по умолчанию не специфицирован, значение получается из переменной окружения MYSQL_TCP_PORT, вхождения mysql-tcp в /etc/services или константы времени компиляции MYSQL_PORT, в указанном порядке. Win32 используют только константу MYSQL_PORT.
- mysql.default_socket string
-
Имя сокета по умолчанию для использования при соединении с локальным сервером БД, если иное имя сокета не специфицировано.
- mysql.default_host string
Хост сервера по умолчанию для использования при соединении с локальным сервером БД, если другой хост не специфицирован. Не примеряется в режиме safe mode.
- mysql.default_user string
-
Имя пользователя по умолчанию для использования при соединении с сервером БД, если иное имя не специфицировано. Не применяется в режиме safe mode.
- mysql.default_password string
-
Пароль по умолчанию для использования при соединении с сервером БД, если иной пароль не специфицирован. Не применяется в режиме safe mode.
Типы ресурсов
Есть два типа ресурсов, используемых в MySQL-модуле. Первый это идентификатор ссылки для соединения с БД, второй - ресурс, содержащий результат выполнения запроса.
Предопределённые константы
Функция mysql_fetch_array() использует константу для различных типов результирующих массивов. Определены следующие константы:
Таблица 2. Константы извлечения MySQL
константа | значение |
---|---|
MYSQL_ASSOC | Столбцы возвращаются в массиве, содержащем имя поля как индекс массива. |
MYSQL_BOTH | Столбцы возвращаются в массиве, содержащем числовой индекс и имя поля как индекс массива. |
MYSQL_NUM | Столбцы возвращаются в массиве, содержащем числовой индекс полей. Этот индекс начинается с 0, первого поля результата. |
MYSQL_STORE_RESULT | Специфицирует, что MySQL-результат должен буферизоваться. |
MYSQL_USE_RESULT | Специфицирует, что MySQL-результат не должен буферизоваться. |
Примеры
Данный пример показывает, как соединиться с БД, выполнить запрос/query, напечатать результирующие ряды и отсоединиться от БД MySQL.
- Содержание
- mysql_affected_rows - получает количество рядов, задействованных в предыдущей операции MySQL
- mysql_change_user - изменяет вошедшего/logged пользователя в активном соединении
- mysql_character_set_name - возвращает имя набора символов/character set
- mysql_close - закрывает MySQL-соединение
- mysql_connect - открывает соединение с MySQL-сервером
- mysql_create_db - создаёт БД MySQL
- mysql_data_seek - перемещает внутренний результирующий указатель
- mysql_db_name - получает результирующие данные
- mysql_db_query - отправляет MySQL query
- mysql_drop_db - удаляет БД MySQL
- mysql_errno - возвращает числовое значение сообщения об ошибке из предыдущей MySQL-операции
- mysql_error - возвращает текст сообщения об ошибке из предыдущей MySQL-операции
- mysql_escape_string - мнемонизирует/Escapes строку для использования в mysql_query
- mysql_fetch_array - извлекает результирующий ряд как ассоциативный массив, числовой массив или оба
- mysql_fetch_assoc - извлекает результирующий ряд как ассоциативный массив
- mysql_fetch_field - получает информацию столбца из результата и возвращает как объект
- mysql_fetch_lengths - получает длину каждого вывода в результате
- mysql_fetch_object - извлекает результирующий ряд как объект
- mysql_fetch_row - получает результирующий ряд в перечислимом массиве
- mysql_field_flags - получает флаги, ассоциированные со специфицированным полем в результате
- mysql_field_len - возвращает длину специфицированного поля в результате
- mysql_field_name - получает имя специфицированного поля в результате
- mysql_field_seek - устанавливает результирующий указатель на смещение специфицированного поля
- mysql_field_table - получает имя таблицы, в которой находится специфицированное поле
- mysql_field_type - получает тип специфицированного поля в результате
- mysql_free_result - освобождает результирующую память
- mysql_get_client_info - получает информацию о клиенте MySQL
- mysql_get_host_info - получает информацию о хосте MySQL
- mysql_get_proto_info - получает информацию о MySQL-протоколе
- mysql_get_server_info - получает информацию о MySQL-сервере
- mysql_info - получает информацию о самом последнем запросе
- mysql_insert_id - получает id, сгенерированный предыдущей операцией INSERT
- mysql_list_dbs - список БД, доступных на MySQL-сервере
- mysql_list_fields - список результирующих полей MySQL
- mysql_list_processes - список процессов MySQL
- mysql_list_tables - список таблиц в БД MySQL
- mysql_num_fields - получает количество полей в результате
- mysql_num_rows - получает количество рядов в результате
- mysql_pconnect - открывает постоянное соединение с MySQL-сервером
- mysql_ping - устанавливает Ping-соединение с сервером или соединяется повторно, если соединения нет
- mysql_query - отправляет MySQL query
- mysql_real_escape_string - мнемонизирует/Escapes специальные символы в строке для использования в SQL-операторе, учитывая текущий charset соединения
- mysql_result - получает результирующие данные
- mysql_select_db - выбирает БД MySQL
- mysql_stat - получает текущий системный статус
- mysql_tablename - получает имя таблицы поля
- mysql_thread_id - возвращает id текущего потока
- mysql_unbuffered_query - отправляет SQL query в MySQL без извлечения и буферизации результирующих рядов