Возвращает количество строк, измененных последней
Возвращает количество строк, измененных последней командой UPDATE, удаленных последней командой DELETE или вставленных последней командой INSERT. Может быть вызвана немедленно после mysql_query() для команд UPDATE, DELETE или INSERT. Для команд SELECT mysql_affected_rows() работает аналогично mysql_num_rows().
Изменяет пользователя и устанавливает базу данных, указанную в аргументе db в качестве текущей по базы данных для соединения, заданного в аргументе mysql. В последующих запросах эта база данных является текущей по умолчанию для табличных ссылок, которые не содержат явного указателя базы данных.
Эта функция была введена в версию MySQL 3.23.3.
Функция mysql_change_user() не выполняется, если подключенный пользователь не может быть аутентифицирован или если он не имеет разрешения на использование этой базы данных. В таком случае данный пользователь и база данных не изменяются.
Параметр db может быть установлен в NULL, если база данных по умолчанию не нужна.
Начиная с версии 4.0.6 будет всегда производить откат любой начатой транзакции, закрывать все временные таблицы, снимать блокировку со всех заблокированных таблиц и переустанавливать состояние, если произошло новое соединение. Это будет происходить даже в том случае, если имя пользователя не изменится.
Возвращает установленную кодировку для текущего подключения.
Закрывает ранее открытое соединение. Функция mysql_close() также освобождает дескриптор данного соединения, указанный в mysql, если данный дескриптор был выделен автоматически функциями mysql_init() или mysql_connect().
Данная функция не рекомендуется. Вместо нее предпочтительно использовать функцию mysql_real_connect().
mysql_connect() пытается установить соединение с сервером баз данных MySQL , работающим на хосте host. До успешного завершения функции mysql_connect() нельзя выполнять никакие другие функции интерфейса, за исключением mysql_get_client_info().
Значения параметров являются теми же самыми, что и для соответствующих параметров функции mysql_real_connect(), с той разницей, что параметр соединения может быть NULL. В этом случае интерфейс C автоматически выделяет память для структуры соединения и освобождает ее при вызове функции mysql_close(). Недостаток данного подхода состоит в том, что при падении соединения нельзя получить сообщение об ошибке (чтобы получить информацию об ошибке из функций mysql_errno() или mysql_error(), необходимо обеспечить адекватный указатель структуры MYSQL).
Создает базу данных, указанную в параметре db.
Данная функция не рекомендуется. Вместо нее предпочтительно использовать функцию mysql_query() для выполнения SQL-команды CREATE DATABASE.
Ищет произвольную строку в результирующем наборе запроса. Для этого требуется, чтобы структура результирующего набора содержала целиком весь результат данного запроса, поэтому mysql_data_seek() может использоваться только в сочетании с mysql_store_result(), но не с mysql_use_result().
Адрес смещения должен быть величиной в диапазоне от 0 до mysql_num_rows(result)-1.
Выполняет отладочные операции DBUG_PUSH с заданной строкой. Функция mysql_debug() использует отладочную библиотеку Fred Fish debug. Для использования этой функции необходимо компилировать библиотеку клиента с поддержкой отладки (см. разделы section E.1 Отладка сервера MySQL и see section E.2 Отладка клиента MySQL).
Уничтожает базу данных, указанную в параметре db.
Данная функция не рекомендуется. Вместо нее предпочтительно использовать функцию mysql_query() для выполнения SQL-команды DROP DATABASE.
Предписывает серверу производить запись отладочной информации в журнал. Для работы функции необходимо, чтобы подключенный пользователь имел привилегию SUPER.
Данная функция не рекомендуется. Вместо нее можно использовать функции mysql_errno() или mysql_error().
Функция mysql_eof() определяет, была ли данная строка последней из прочитанных в результирующем наборе данных.
Если результирующий набор получен путем успешного вызова функции mysql_store_result(), то данный клиент получает полный набор данных за одну операцию. В этом случае возврат NULL из mysql_fetch_row() всегда означает, что достигнут конец результирующего набора и нет необходимости в вызове функции mysql_eof(). При использовании совместно с mysql_store_result() функция mysql_eof() всегда будет возвращать TRUE.
С другой стороны, при использовании mysql_use_result() для инициализации извлечения результирующего набора, клиент получает строки набора с сервера поочередно при повторных вызовах функции mysql_fetch_row(). Поскольку в этом процессе может возникнуть ошибка в соединении, NULL, полученный от mysql_fetch_row(), не всегда означает что конец результата был достигнут корректно. В этом случае вы можете использовать mysql_eof(), чтобы выяснить, что же случилось. mysql_eof() вернет ненулевую величину, если конец результирующего набора был достигнут, и нуль, если произошла ошибка.
Исторически сложилось так, что mysql_eof() по своим задачам сходна со стандартными функциями обработки ошибок MySQL mysql_errno() и mysql_error(). Поскольку эти функции дают одну и ту же информацию, их использование более предпочтительно чем mysql_eof(), которая сейчас выведена из употребления (в действительности они предоставляют еще больше информации, т.к. mysql_eof() возвращает только булево значение, в то время как функции обработки ошибок сообщают причину, по которой ошибка произошла).
Для соединения, указанного в mysql, функция mysql_errno() возвращает код ошибки для последней запущенной функции интерфейса, которая может быть успешной или не выполниться. Возвращение нулевой величины означает, что ошибка не возникала. Номера сообщений об ошибке для клиентов перечислены в заголовочном файле MySQL `errmsg.h'. Номера серверных сообщений об ошибке даны в файле `mysqld_error.h'. В исходном дистрибутиве MySQL можно найти полный список сообщений об ошибках и номеров ошибок в файле `Docs/mysqld_error.txt'.
Для соединения, указанного в mysql, функция mysql_error() возвращает сообщение об ошибке для последней вызванной функции интерфейса, которая может быть успешной или не выполниться. Если ошибка не возникала, то возвращается пустая строка (""). Это означает, что следующие две проверки эквивалентны:
if(mysql_errno(&mysql)) { // ошибка возникла } if(mysql_error(&mysql)[0] != '\0') { // ошибка возникла }
Язык клиентских сообщений об ошибке может быть изменен путем перекомпилирования клиентской библиотеки MySQL. В настоящее время можно выбирать для вывода сообщений об ошибке один из нескольких различных естественных языков (see section 4.6.2 Сообщения об ошибках на языках, отличных от английского).
Возвращает определение одного столбца из результирующего набора в виде структуры MYSQL_FIELD. Для извлечения информации обо всех столбцах в результирующем наборе следует вызывать эту функцию повторно. Если полей больше не остается, функция mysql_fetch_field() возвращает NULL.
Каждый раз при выполнении нового запроса SELECT функция mysql_fetch_field() сбрасывается в исходное состояние, чтобы возвращать информацию о первом поле. На поле, возвращенное функцией mysql_fetch_field(), также можно воздействовать, вызвав функцию mysql_field_seek().
Если вызвана функция mysql_query() для выполнения команды SELECT на таблице, но не вызвана функция mysql_store_result(), то MySQL возвращает установленную по умолчанию длину данных типа BLOB (8 Kб) при вызове функции mysql_fetch_field() для выяснения длины поля BLOB (Размер 8 Kб выбран потому, что MySQL в этом случае не знает максимальной длины для BLOB. Когда-нибудь эта конфигурация будет сделана перестраиваемой.) Поскольку результирующий набор извлечен, то выражение field->max_length содержит длину наибольшей величины для данного столбца в указанном запросе.
По заданному номеру поля fieldnr для столбца внутри результирующего набора возвращает определение данного поля столбца как структуру MYSQL_FIELD. Эту функцию можно использовать для извлечения определения для произвольного столбца. Величина fieldnr должна находиться в диапазоне от 0 до mysql_num_fields(result)-1.
Возвращает массив всех структур MYSQL_FIELD для результирующего набора данных. Каждая структура предоставляет определение данного поля в одном столбце результирующего набора.
Возвращает длины столбцов текущей строки внутри результирующего набора данных. Если вы планируете копировать величины столбцов, то эта информация о длинах полезна также для оптимизации, поскольку помогает избежать вызова функции strlen(). Кроме того, если результирующий набор содержит двоичные данные, то необходимо использовать рассматриваемую функцию для определения размера этих данных, поскольку функция strlen() возвращает некорректные результаты для поля, содержащего символы NULL.
Искомая длина для пустых столбцов и для столбцов, содержащих величины NULL, равна нулю. Чтобы увидеть, как следует различать эти два случая, см. описание для функции mysql_fetch_row().
Извлекает следующую строку в результирующем наборе данных. При использовании после функции mysql_store_result() функция mysql_fetch_row() возвращает NULL, если больше не осталось строк для извлечения. При использовании после функции mysql_use_result() функция mysql_fetch_row() возвращает NULL, если больше не осталось строк для извлечения или если произошла ошибка.
Количество величин в данной строке задается в mysql_num_fields(result). Если параметр row содержит возвращенные значения из вызова функции mysql_fetch_row(), то указатели на эти величины имеют значения от row[0] до row[mysql_num_fields(result)-1]. Величины NULL в данной строке отмечаются указателями NULL.
Размеры полей в данной строке можно получить, вызывая функцию mysql_fetch_lengths(). Пустые поля и поля, содержащие NULL, в обоих случаях имеют длину 0; их можно различить, проверив указатель для данной величины поля. Если указатель равен NULL, то данное поле содержит NULL; в противном случае, данное поле является пустым.
Возвращает количество столбцов для последнего запроса в данном соединении.
Обычно эту функцию используют в случае, когда функция mysql_store_result() возвращает NULL (и, следовательно, нет ни одного указателя для результирующего набора). В этом случае можно вызвать функцию mysql_field_count() для определения, может ли функция mysql_store_result() выдать непустой результат. Это дает возможность данной клиентской программе выполнить соответствующее действие без уточнения, был ли данный запрос командой вида SELECT (или похожей на SELECT). Приведенный ниже пример иллюстрирует, как это можно сделать.
See section 8.4.6.1 Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?.
Устанавливает курсор поля в заданную позицию. Дальнейший вызов функции mysql_fetch_field() будет извлекать определение данного поля в столбце, ассоциированном с данной позицией курсора.
Для поиска начала строки необходимо установить величину offset в нуль.
Возвращает позицию курсора поля, использованную для последнего вызова функции mysql_fetch_field(). Эта величина может использоваться как аргумент в функции mysql_field_seek().
Освобождает память, выделенную для результирующего набора данных функциями mysql_store_result(), mysql_use_result(), mysql_list_dbs() и т.д. После выполнения операций с результирующим набором необходимо освободить используемую под него память вызовом функции mysql_free_result().
Возвращает строку, представляющую версию библиотеки данного клиента.
Возвращает номер версии сервера как целое число (новое с 4.1)
Возвращает строку, описывающую тип используемого соединения, включая имя серверного хоста.
Возвращает версию протокола, используемую для текущего соединения.
Возвращает строку, представляющую номер версии сервера.
Извлекает строку, представляющую информацию о последнем выполненном запросе, но только для команд, перечисленных ниже. Для других команд функция mysql_info() возвращает NULL. Строка имеет различный формат в зависимости от типа запроса, как описано ниже. Числа приведены только для иллюстрации; данная строка будет содержать величины, соответствующие конкретному запросу.
INSERT INTO ... SELECT ...
Формат строки: Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
Формат строки: Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
Формат строки: Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
Формат строки: Records: 3 Duplicates: 0 Warnings: 0
UPDATE
Формат строки: Rows matched: 40 Changed: 40 Warnings: 0
Следует учитывать, что функция mysql_info() возвращает величину не-NULL
для команды INSERT ... VALUES, только если в данной команде заданы множественные списки величин.
Выделяет или инициализирует объект MYSQL, подходящий для функции mysql_real_connect(). Если аргумент mysql представляет собой указатель NULL, то эта функция выделяет, инициализирует и возвращает новый объект. В противном случае инициализируется указанный объект и возвращается его адрес. Если функция mysql_init() выделяет новый объект, то он будет освобожден при вызове функции mysql_close(), чтобы закрыть данное соединение.
Возвращает идентификатор ID, сгенерированный для столбца AUTO_INCREMENT
предыдущим запросом. Эту функцию следует использовать после выполнения запроса INSERT в таблице, содержащей поле AUTO_INCREMENT.
Следует учитывать, что функция mysql_insert_id() возвращает 0, если предыдущий запрос не сформировал величину AUTO_INCREMENT. Если необходимо сохранить эту величину в дальнейшем, то следует позаботиться о вызове функции mysql_insert_id() немедленно после запроса, который создает указанную величину.
Функция mysql_insert_id() обновляется после команд INSERT и UPDATE, которые генерируют величину AUTO_INCREMENT или устанавливают величину столбца в значение LAST_INSERT_ID(expr). See section 6.3.6.2 Разные функции.
Следует также иметь в виду, что величина SQL-функции LAST_INSERT_ID() всегда содержит самое последнее сгенерированное значение AUTO_INCREMENT и не обновляется между запросами, так как величина этой функции сохраняется сервером.
Предписывает серверу уничтожить поток, указанный в аргументе pid.
Возвращает результирующий набор, состоящий из имен баз данных на сервере, которые встречаются в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы `%' или `_', а также может быть указателем NULL, что соответствует всем базам данных. Вызов функции mysql_list_dbs()аналогичен выполнению запроса SHOW databases [LIKE wild].
Результирующий набор необходимо освободить с помощью функции mysql_free_result().
Возвращает результирующий набор, состоящий из имен полей в заданной таблице, встречающихся в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы `%' или `_', а также может быть указателем NULL, что соответствует всем полям. Вызов функции mysql_list_fields() аналогичен выполнению запроса SHOW COLUMNS FROM tbl_name [LIKE wild].
Следует учитывать, что рекомендуется использовать команду SHOW COLUMNS FROM tbl_name вместо функции mysql_list_fields().
Результирующий набор необходимо освободить с помощью функции mysql_free_result().
Возвращает результирующий набор, описывающий текущие потоки на сервере. Предоставляет тот же тип информации, который выдается утилитой mysqladmin
processlist или запросом SHOW PROCESSLIST.
Результирующий набор необходимо освободить с помощью функции mysql_free_result().
Возвращает результирующий набор, состоящий из имен таблиц в текущей базе данных, которые встречаются в простом регулярном выражении, указанном в параметре wild. Параметр wild может содержать шаблонные символы `%' или `_', а также может быть указателем NULL, что соответствует всем таблицам. Вызов функции mysql_list_tables()аналогичен выполнению запроса SHOW tables [LIKE wild].
Результирующий набор необходимо освободить с помощью функции mysql_free_result().
Возвращает количество столбцов в результирующем наборе.
Следует отметить, что можно получить искомое количество столбцов с помощью указателя или на результирующий набор, или на дескриптор соединения. Дескриптор соединения необходимо использовать, если функции mysql_store_result() или mysql_use_result() возвратили NULL (и, следовательно, отсутствует указатель результирующего набора). В этом случае можно вызвать функцию mysql_field_count()для определения, может ли функция mysql_store_result()выдать непустой результат. Это дает возможность данной клиентской программе выполнить соответствующее действие без уточнения, был ли данный запрос командой вида SELECT (или похожей на SELECT). В приведенном ниже примере иллюстрируется, как это можно сделать.
See section 8.4.6.1 Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?.
Возвращает количество строк в результирующем наборе.
Использование функции mysql_num_rows() зависит от того, какая функция - mysql_store_result() или mysql_use_result() применяется для возвращения результирующего набора. Если используется mysql_store_result(), то функция mysql_num_rows() может вызываться немедленно. Если используется mysql_use_result(),то функция mysql_num_rows() не будет возвращать правильную величину до тех пор, пока все строки в результирующем наборе не будут извлечены.
Может использоваться для установки дополнительных опций соединения и влияет на режим работы соединения. Эта функция может вызываться многократно для установки нескольких опций.
Функция mysql_options() должна вызываться после функции mysql_init() и перед функцией mysql_connect() или mysql_real_connect().
Аргумент option представляет собой опцию, которую требуется установить; аргумент arg является величиной этой опции. Если данная опция является целым числом, то аргумент arg должен указывать на величину целого числа.
Возможные значения опций:
Опция | Тип аргумента | Функция |
MYSQL_OPT_CONNECT_TIMEOUT | unsigned int * | Время ожидания для соединения в секундах. |
MYSQL_OPT_COMPRESS | Не используется | Использовать сжатие в клиент-серверном протоколе. |
MYSQL_OPT_LOCAL_INFILE | Опциональный указатель на uint | Если указатель не задан или указывает на unsigned int != 0 команда LOAD LOCAL INFILE разрешена. |
MYSQL_OPT_NAMED_PIPE | Не используется | Использовать именованные каналы для соединения с сервером MySQL на NT. |
MYSQL_INIT_COMMAND | char * | Команда для исполнения при подключении к серверу MySQL. При восстановлении соединения будет снова автоматически выполнена. |
MYSQL_READ_DEFAULT_FILE | char * | Читать опции из указанного файла опций вместо чтения из файла `my.cnf'. |
MYSQL_READ_DEFAULT_GROUP | char * | Читать опции из указанной группы из файла `my.cnf' или из файла заданного в MYSQL_READ_DEFAULT_FILE. |
Следует помнить, что группа client читается всегда при использовании MYSQL_READ_DEFAULT_FILE или MYSQL_READ_DEFAULT_GROUP.
Упомянутая группа в файле опций может содержать следующие опции:
Опция | Описание |
connect-timeout | Время ожидания для соединения в секундах. Для Linux это время ожидания используется также для ожидания первого ответа с сервера. |
compress | Использовать сжатие в клиент-серверном протоколе. |
database | Подключиться к этой базе данных, если никакая база данных не была указана в данной команде подключения. |
debug | Опции отладки. |
disable-local-infile | Блокировка использования LOAD DATA LOCAL. |
Проверяет, работает ли данное соединение с сервером. Если соединение прервано, то пытается автоматически восстановить его.
Эта функция может использоваться клиентами, долгое время находящимися в состоянии простоя, для проверки, закрыл ли сервер данное соединение, и для восстановления соединения при необходимости.
Выполняет запрос SQL, указанный в аргументе query в виде строки с нулевыми окончаниями. Данный запрос должен состоять из одной команды SQL. Нельзя добавлять к этой команде в качестве завершающих элементов точку с запятой (`;') или \g.
Функция mysql_query() не может использоваться для запросов, содержащих двоичные данные; вместо этого необходимо использовать функцию mysql_real_query() (двоичные данные могут содержать символ `\0', который mysql_query() интерпретирует как окончание строки запроса).
Для проверки, вернул данный запрос результирующий набор или нет, можно использовать функцию mysql_field_count(). See section 8.4.3.20 mysql_field_count().
Эта функция используется для создания допустимой SQL- строки, которую можно использовать в команде SQL. See section 6.1.1.1 Cтроки.
Строка из секции from кодируется в экранированную SQL-строку, принимая во внимание текущую кодировку данного соединения. Результат помещается в секцию to с добавлением концевого нулевого байта. Кодируются следующие символы: NUL (ASCII 0), `\n', `\r', `\', `'', `"' и Ctrl-Z (see section 6.1.1 Литералы: представление строк и чисел). (Строго говоря, MySQL требует только чтобы обратная косая черта и кавычки, используемые для квотинга строк в запросе, были проэкранированы. Эта функция экранирует и другие символы, делая их более легкими для чтения в журнальных файлах.)
Строка, указанная в секции from, должна быть длиной length байтов. Необходимо выделить для секции to буфер величиной по меньшей мере length*2+1 байтов (в наихудшем случае каждый символ может потребовать кодировки с использованием двух байтов и, кроме того, необходимо место для концевого нулевого байта). При возврате функции mysql_real_escape_string() содержимое секции to будет представлять собой строку с нулевым окончанием. Возвращаемая величина представляет собой длину данной кодированной строки, не включая концевой нулевой символ.
Выполняет SQL-запрос, указанный в query, который должен быть строкой длиною length байтов. Данный запрос должен состоять из одной команды SQL. Нельзя добавлять к этой команде в качестве завершающих элементов точку с запятой (`;') или \g.
Необходимо использовать функцию mysql_real_query() вместо функции mysql_query()для запросов, содержащих двоичные данные, поскольку двоичные данные могут содержать символ `\0'. Кроме того, функция mysql_real_query() быстрее, чем mysql_query() так как она не вызывает функцию strlen() в строке запроса.
Для проверки того, вернул данный запрос результирующий набор или нет, можно использовать функцию mysql_field_count(). See section 8.4.3.20 mysql_field_count().
Запрашивает сервер MySQL перегрузить таблицы привилегий. Подключенный пользователь должен обладать правом RELOAD.
Данная функция не рекомендуется. Вместо нее предпочтительно использовать функцию mysql_query() для вызова SQL-команды FLUSH PRIVILEGES.
Устанавливает курсор строки на произвольную заданную строку в результирующем наборе запроса. Это требует, чтобы структура результирующего набора содержала целиком весь результат данного запроса, поэтому функция mysql_row_seek() может использоваться только в соединении с mysql_store_result(), но не с mysql_use_result().
Адрес смещения должен быть величиной, возвращенной в результате вызова функций mysql_row_tell() или mysql_row_seek(). Эта величина не является номером строки, поэтому для проведения поиска строки внутри результирующего набора по номеру строки вместо данной функции следует использовать функцию mysql_data_seek().
Возвращает позицию курсора строки, использованную для последнего вызова функции mysql_fetch_row().Эта величина может использоваться как аргумент в функции mysql_row_seek().
Функцию mysql_row_tell() следует использовать только после функции mysql_store_result(), но не после mysql_use_result().
Устанавливает базу данных, указанную в db, в качестве текущей базы данных по умолчанию для соединения, указанного в mysql. В последующих запросах эта база данных является текущей по умолчанию для табличных ссылок, которые не содержат явного указателя базы данных.
Функция mysql_select_db() не работает, пока подключенный пользователь не сможет быть аутентифицирован как имеющий право на использование запрашиваемой базы данных.
Останавливает сервер баз данных. Подключенный пользователь должен иметь права SHUTDOWN.
Возвращает символьную строку, содержащую информацию, подобную предоставляемой командой mysqladmin status. Информация включает в себя время работы сервера в секундах, а также количество запущенных потоков, запросов, перегрузок и открытых таблиц.
Функцию mysql_store_result() или mysql_use_result() необходимо вызывать после каждого выполненного запроса, извлекающего данные (SELECT, SHOW, DESCRIBE, EXPLAIN).
Нет необходимости в вызове функции mysql_store_result() или mysql_use_result() для других запросов, но не будет никакого вреда или заметной потери производительности, если функция mysql_store_result() будет вызываться во всех случаях. Можно определить, вернул ли данный запрос результирующий набор, проверкой, возвращает ли 0 функция mysql_store_result() (более подробно об этом см. дальше).
Для проверки того, вернул данный запрос результирующий набор или нет, можно использовать функцию mysql_field_count(). See section 8.4.3.20 mysql_field_count().
Функция mysql_store_result() читает весь результат запроса данного клиента, выделяет структуру MYSQL_RES и помещает результат в эту структуру.
Функция mysql_store_result() возвращает нулевой указатель, если данный запрос не вернул результирующий набор (если этот запрос был, например, командой INSERT).
Функция mysql_store_result() также возвращает нулевой указатель, если чтение результирующего набора завершилось неудачно. Выяснить, произошла ли ошибка, можно следующим образом: если mysql_error() не возвращает нулевой указатель, если mysql_errno() возвращает величину <> 0 или если mysql_field_count()возвращает величину <> 0.
Пустой результирующий набор возвращается в случае, если нет ни одной возвращенной строки. (Пустой результирующий набор и нулевой указатель - разные вещи в контексте возвращаемых величин.)
Если была вызвана функция mysql_store_result() и полученный результат не является нулевым указателем, то можно вызвать функцию mysql_num_rows() для определения количества строк в результирующем наборе.
Можно вызвать функцию mysql_fetch_row() для выборки строк из результирующего набора или функции mysql_row_seek() и mysql_row_tell() для получения или установки положения текущей строки внутри данного результирующего набора.
Необходимо вызвать функцию mysql_free_result() сразу же после окончания действий с результирующим набором.
See section 8.4.6.1 Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?.
Возвращает идентификатор данного потока для текущего соединения. Эта величина может быть использована как аргумент для функции mysql_kill() для уничтожения данного потока.
Если соединение прерывается и осуществляется его восстановление с помощью функции mysql_ping(), то идентификатор данного потока изменится. Это означает, что нельзя получить идентификатор данного потока и хранить его для последующего использования. Следует определять его, когда в этом есть необходимость.
Функцию mysql_store_result() или mysql_use_result() необходимо вызывать после каждого выполненного запроса, извлекающего данные (SELECT, SHOW, DESCRIBE, EXPLAIN).
Функция mysql_use_result() инициализирует извлечение результирующего набора, но фактически не производит чтение в клиенте подобно тому, как это делает функция mysql_store_result(). Вместо этого каждая строка должна извлекаться индивидуально посредством вызова функции mysql_fetch_row(). При этом методе результат запроса читается непосредственно на сервере без промежуточного хранения его во временной таблице или локальном буфере, что быстрее и требует намного меньше памяти, чем использование функции mysql_store_result(). Клиент будет выделять память только для текущей строки и буфер связи может расти до величины max_allowed_packet байтов.
С другой стороны, функцию mysql_use_result() нельзя использовать, если выполняется много операций по обработке каждой строки на клиентской стороне, или если вывод делается на терминал, на котором пользователь может нажать ^S (остановить вывод).
Это будет ограничивать работу сервера и будет мешать другим потокам в обновлении таблиц, из которых выбираются данные.
При использовании mysql_use_result() необходимо выполнять mysql_fetch_row(), пока не возвратится величина NULL, в противном случае невыбранные строки данного запроса будут возвращены как часть результирующего набора для следующего запроса. Если вы забыли сделать это, то интерфейс C будет выдавать ошибку Commands out of sync; you can't run this command now!
Нельзя использовать функции mysql_data_seek(), mysql_row_seek(), mysql_row_tell(), mysql_num_rows() или mysql_affected_rows() для обработки результата, возвращенного функцией mysql_use_result(), а также нельзя запускать другие запросы, пока функция mysql_use_result() не завершится (однако после выборки всех строк функция mysql_num_rows() будет корректно возвращать количество выбранных строк).
Необходимо вызвать функцию mysql_free_result() сразу же после окончания действий с результирующим набором.
Данную функцию необходимо вызывать однажды во время запуска программы перед вызовом любой функции MySQL. Ее вызовом инициализируются необходимые для MySQL глобальные переменные. При использовании клиентской библиотеки, поддерживающей потоки, эта функция будет также вызывать функцию mysql_thread_init() для этого потока.
Данная функция вызывается автоматически функциями mysql_init(), mysql_server_init() и mysql_connect().
Эту функцию необходимо вызывать для каждого созданного потока - для инициализации его специфических переменных.
Данная функция вызывается автоматически функциями my_init() и mysql_connect().
Данную функцию необходимо вызывать перед вызовом функции pthread_exit() для освобождения памяти, выделенной функцией mysql_thread_init().
Следует учитывать, что эта функция не вызывается автоматически клиентской библиотекой. Во избежание утечки памяти она должна вызываться явно.
Эта функция возвращает значение, показывающее, компилировался ли данный клиент как поддерживающий потоки.
Данную функцию необходимо вызывать только один раз во время работы программы, использующей встроенный сервер. Это функцию следует вызвать перед вызовом любой другой функции MySQL. Она запускает сервер и инициализирует все подсистемы (mysys, InnoDB и т.д.), используемые сервером. Без вызова этой функции произойдет аварийное завершение данной программы. При использовании пакета DBUG, поставляемого вместе с MySQL, данную функцию следует вызывать после функции MY_INIT().
Аргументы argc и argv аналогичны аргументам в main(). Первый элемент аргумента argv игнорируется (обычно он содержит имя программы). Для удобства аргумент argc может быть равен 0 (нуль) - если не задано ни одного аргумента командной строки для данного сервера. mysql_server_init() делает копию аргументов, т.е. она безопастна для уничтожения argv или groups после вызова.
Аргумент groups представляет собой список строк, заканчивающийся NULL. Этот аргумент задает активные группы в файлах опций (see section 4.1.2 Файлы параметров `my.cnf'). Для удобства аргумент groups может быть равен NULL - в этом случае будут активны группы [server] и [emedded].
Эту функцию в программе необходимо вызывать только единожды, после всех остальных функций MySQL. Она останавливает libmysqld, встраиваемый сервер MySQL.
Содержание раздела