Spec-Zone .ru
спецификации, руководства, описания, API
|
Функции, доступные в API C, получаются в итоге здесь и описываются более подробно в более позднем разделе. См. Раздел 21.8.7, "Описания API-функции C".
Табличные 21.36. C Имена API-функции и Описания
Функция | Описание |
---|---|
my_init() |
Инициализируйте глобальные переменные, и распараллельте обработчик в ориентированных на многопотоковое исполнение программах |
mysql_affected_rows()
|
Возвращает число строк, измененных/удаленных/вставленных последним UPDATE , DELETE ,
или INSERT запрос
|
mysql_autocommit() |
Переключатели автоматически фиксируют режим вкл\выкл |
mysql_change_user() |
Пользователь изменений и база данных на открытом соединении |
mysql_character_set_name()
|
Возвратите имя набора символов значения по умолчанию для текущего соединения |
mysql_client_find_plugin()
|
Возвратите указатель на плагин |
mysql_client_register_plugin()
|
Зарегистрируйте плагин |
mysql_close()
|
Закрывает соединение сервера |
mysql_commit()
|
Фиксирует транзакцию |
mysql_connect() |
Соединяется с сервером MySQL (эта функция осуждается; использовать mysql_real_connect() вместо этого)
|
mysql_create_db() |
Создает базу данных (эта функция осуждается; используйте SQL-оператор CREATE DATABASE вместо этого)
|
mysql_data_seek() |
Ищет на произвольный номер строки в наборе результатов запроса |
mysql_debug()
|
Делает a DBUG_PUSH с данной строкой |
mysql_drop_db() |
Отбрасывает базу данных (эта функция осуждается; используйте SQL-оператор DROP DATABASE вместо этого)
|
mysql_dump_debug_info()
|
Заставляет сервер записать отладочную информацию в журнал |
mysql_eof() |
Определяет, была ли последняя строка набора результатов считана (эта функция осуждается; mysql_errno() или mysql_error() может использоваться вместо этого),
|
mysql_errno()
|
Возвращает код ошибки для последний раз вызванной функции MySQL |
mysql_error()
|
Возвращает сообщение об ошибке для последний раз вызванной функции MySQL |
mysql_escape_string()
|
Escape специальные символы в строке для использования в SQL-операторе |
mysql_fetch_field() |
Возвращает тип следующего табличного поля |
mysql_fetch_field_direct()
|
Возвращает тип табличного поля, учитывая полевое число |
mysql_fetch_fields()
|
Возвращает массив всех полевых структур |
mysql_fetch_lengths()
|
Возвращает длины всех столбцов в текущей строке |
mysql_fetch_row() |
Выбирает следующую строку от набора результатов |
mysql_field_count() |
Возвращает число столбцов результата для нового оператора |
mysql_field_seek() |
Помещает курсор столбца в указанный столбец |
mysql_field_tell() |
Возвращает позицию полевого курсора, используемого для последнего mysql_fetch_field() |
mysql_free_result() |
Освобождает память, используемую набором результатов |
mysql_get_character_set_info()
|
Возвратите информацию о наборе символов значения по умолчанию |
mysql_get_client_info()
|
Клиентская информация о версии возвратов как строка |
mysql_get_client_version()
|
Клиентская информация о версии возвратов как целое число |
mysql_get_host_info()
|
Возвращает строку, описывающую соединение |
mysql_get_proto_info()
|
Возвращает версию протокола, используемую соединением |
mysql_get_server_info()
|
Возвращает номер версии сервера |
mysql_get_server_version()
|
Номер версии возвратов сервера как целое число |
mysql_get_ssl_cipher()
|
Возвратите текущий шифр SSL |
mysql_hex_string() |
Закодируйте строку в шестнадцатеричном формате |
mysql_info()
|
Информация о возвратах о последний раз выполняемом запросе |
mysql_init()
|
Получает или инициализирует a MYSQL структура |
mysql_insert_id() |
Возвращает ID, сгенерированный для AUTO_INCREMENT столбец
предыдущим запросом
|
mysql_kill()
|
Уничтожает данный поток |
mysql_library_end() |
Завершите библиотеку API MySQL C |
mysql_library_init()
|
Инициализируйте библиотеку API MySQL C |
mysql_list_dbs()
|
Имена базы данных возвратов, соответствующие простое регулярное выражение |
mysql_list_fields() |
Имена полей возвратов, соответствующие простое регулярное выражение |
mysql_list_processes()
|
Возвращает список текущих потоков сервера |
mysql_list_tables() |
Имена таблиц возвратов, соответствующие простое регулярное выражение |
mysql_load_plugin() |
Загрузите плагин |
mysql_load_plugin_v()
|
Загрузите плагин |
mysql_more_results()
|
Проверки, существуют ли еще результаты |
mysql_next_result() |
Возвращается/инициирует следующий результат в выполнении многократного результата |
mysql_num_fields() |
Возвращает число столбцов в наборе результатов |
mysql_num_rows()
|
Возвращает число строк в наборе результатов |
mysql_options() |
Наборы соединяют опции для mysql_real_connect()
|
mysql_options4()
|
Наборы соединяют опции для mysql_real_connect()
|
mysql_ping()
|
Проверки, работает ли соединение с сервером, повторно соединяясь по мере необходимости |
mysql_plugin_options()
|
Установите сменную опцию |
mysql_query()
|
Выполняет SQL-запрос, определенный как завершенная нулем строка |
mysql_real_connect()
|
Соединяется с сервером MySQL |
mysql_real_escape_string()
|
Escape специальные символы в строке для использования в SQL-операторе, принимая во внимание текущий набор символов соединения |
mysql_real_query() |
Выполняет SQL-запрос, определенный как считаемая строка |
mysql_refresh() |
Сброс или таблицы сброса и кэши |
mysql_reload()
|
Говорит серверу перезагружать таблицы предоставления |
mysql_rollback()
|
Откатывает транзакцию |
mysql_row_seek()
|
Ищет на смещение строки в наборе результатов, используя значение, возвращенное из mysql_row_tell() |
mysql_row_tell()
|
Возвращает позицию курсора строки |
mysql_select_db() |
Выбирает базу данных |
mysql_server_end() |
Завершите библиотеку API MySQL C |
mysql_server_init() |
Инициализируйте библиотеку API MySQL C |
mysql_set_character_set()
|
Набор символов значения по умолчанию набора для текущего соединения |
mysql_set_local_infile_default()
|
Установите LOAD DATA LOCAL
INFILE обратные вызовы обработчика к их значениям по умолчанию
|
mysql_set_local_infile_handler()
|
Специализированная установка LOAD
DATA LOCAL INFILE обратные вызовы обработчика
|
mysql_set_server_option()
|
Устанавливает опцию для соединения (какmulti-statements ) |
mysql_sqlstate()
|
Возвращает код ошибки SQLSTATE для последней ошибки |
mysql_shutdown()
|
Завершает работу сервера базы данных |
mysql_ssl_set() |
Подготовьтесь устанавливать соединение SSL с сервером |
mysql_stat()
|
Возвращает состояние сервера как строку |
mysql_store_result()
|
Получает полный набор результатов клиенту |
mysql_thread_end() |
Завершите обработчик потока |
mysql_thread_id() |
Возвращает ID текущего потока |
mysql_thread_init() |
Инициализируйте обработчик потока |
mysql_thread_safe() |
Возвраты 1, если клиенты компилируются как ориентированные на многопотоковое исполнение |
mysql_use_result() |
Инициирует извлечение набора результатов строки строкой |
mysql_warning_count()
|
Возвращается предупреждение значат предыдущий SQL-оператор |
Прикладные программы должны использовать эту общую схему для того, чтобы взаимодействовать с MySQL:
Инициализируйте библиотеку MySQL, вызывая mysql_library_init()
. Эта функция существует в обоих libmysqlclient
C клиентская библиотека и libmysqld
встроенная библиотека сервера, таким образом, это используется,
создаете ли Вы регулярную клиентскую программу, соединяясь с -libmysqlclient
флаг, или встроенное серверное приложение, соединяясь с -libmysqld
флаг.
Инициализируйте обработчик соединения, вызывая mysql_init()
и соединитесь с сервером, вызывая mysql_real_connect()
.
Выпустите SQL-операторы и обработайте их результаты. (Следующее обсуждение предоставляет больше информации о том, как сделать это.)
Закройте соединение с сервером MySQL, вызывая mysql_close()
.
Использование конца библиотеки MySQL, вызывая mysql_library_end()
.
Цель вызвать mysql_library_init()
и
mysql_library_end()
должен обеспечить надлежащую инициализацию и завершение
библиотеки MySQL. Для приложений, которые соединяются с клиентской библиотекой, они обеспечивают улучшенное
управление памятью. Если Вы не вызываете mysql_library_end()
,
блок памяти остается выделенным. (Это не увеличивает объем памяти, используемый приложением, но некоторые
детекторы утечки памяти будут жаловаться на это.) Для приложений, которые соединяются со встроенным сервером,
эти вызовы запускают и останавливают сервер.
В немногопоточной среде, звонке mysql_library_init()
может быть опущен, потому что mysql_init()
вызовет это автоматически по мере необходимости. Однако, mysql_library_init()
не ориентировано на многопотоковое исполнение в
многопоточной среде, и таким образом ни один не mysql_init()
,
который вызывает mysql_library_init()
. Следует или вызвать mysql_library_init()
до порождения любых потоков, или иначе использования
взаимное исключение, чтобы защитить вызов, вызываете ли Вы mysql_library_init()
или косвенно через mysql_init()
. Это должно быть сделано до любого другого клиентского вызова
библиотеки.
Чтобы соединиться с сервером, вызвать mysql_init()
чтобы инициализировать обработчик соединения, затем вызовите mysql_real_connect()
с тем обработчиком (наряду с другой информацией, такой как
имя хоста, имя пользователя, и пароль). На соединение, mysql_real_connect()
наборы reconnect
флаг
(часть MYSQL
структура) к значению 1
в версиях API,
более старого чем 5.0.3, или 0
в более новых версиях. Значение 1
поскольку этот флаг указывает на это, если оператор не может быть выполнен
из-за потерянного соединения, чтобы попытаться повторно соединиться с сервером перед отказом. Можно использовать
MYSQL_OPT_RECONNECT
опция к mysql_options()
управлять поведением пересоединения. Когда Вы делаетесь с
соединением, вызвать mysql_close()
завершать
это.
В то время как соединение является активным, клиент может отправить SQL-операторы использованию сервера mysql_query()
или mysql_real_query()
. Различие между этими двумя - это mysql_query()
ожидает, что запрос будет определен как завершенная нулем
строка тогда как mysql_real_query()
ожидает считаемую строку. Если строка содержит двоичных данных (который может включать нулевые байты), следует
использовать mysql_real_query()
.
Для каждого не -SELECT
запрос (например, INSERT
,
UPDATE
,
DELETE
),
можно узнать, сколько строк было изменено (влиявшие), вызывая mysql_affected_rows()
.
Для SELECT
запросы, Вы получаете выбранные строки в результате набор. (Отметьте, что
некоторые операторы SELECT
- как, в котором они возвращают строки. Они включают SHOW
, DESCRIBE
, и EXPLAIN
. Обработайте эти операторы тот же самый путь как SELECT
операторы.)
Есть два способа для клиента обработать наборы результатов. Один путь состоит в том, чтобы получить весь набор
результатов внезапно, вызывая mysql_store_result()
.
Эта функция получает от сервера все строки, возвращенные запросом, и хранит их в клиенте. Второй путь для
клиента, чтобы инициировать извлечение набора результатов строки строкой, вызывая mysql_use_result()
. Эта функция инициализирует извлечение, но фактически не
получает строк от сервера.
В обоих случаях Вы получаете доступ к строкам, вызывая mysql_fetch_row()
. С mysql_store_result()
, mysql_fetch_row()
строки доступов, которые были ранее выбраны от сервера. С mysql_use_result()
, mysql_fetch_row()
фактически получает строку от сервера. Информация о размере
данных в каждой строке доступна, вызывая mysql_fetch_lengths()
.
После того, как Вы делаетесь с набором результатов, вызвать mysql_free_result()
освободить память, используемую для этого.
Два механизма извлечения дополнительны. Выберите подход, который является самым подходящим для каждого
клиентского приложения. Практически, клиенты склонны использовать mysql_store_result()
более обычно.
Преимущество mysql_store_result()
это, потому что строки были все выбраны клиенту, не только можно получить доступ к строкам последовательно,
можно двинуться вперед-назад в использовании набора результатов mysql_data_seek()
или mysql_row_seek()
изменить текущую позицию строки в пределах набора
результатов. Можно также узнать, сколько строки там, вызывая mysql_num_rows()
. С другой стороны, требования к памяти для mysql_store_result()
может быть очень высоким для больших наборов
результатов, и Вы, более вероятно, встретитесь с условиями из памяти.
Преимущество mysql_use_result()
это, клиент требует меньшего количества памяти для набора
результатов, потому что это поддерживает только одну строку за один раз (и потому что есть меньше издержек
выделения, mysql_use_result()
может
быть быстрее). Недостатки - то, что следует обработать каждую строку быстро, чтобы избежать связывать сервер, у
Вас нет произвольного доступа к строкам в пределах набора результатов (можно только получить доступ к строкам
последовательно), и Вы не знаете, сколько строк находится в наборе результатов, пока Вы не получили их всех.
Кроме того следует получить все строки, даже если Вы определяете в
середине извлечения, что Вы нашли информацию, которую Вы искали.
API позволяет клиентам соответственно ответить на операторы (получающий строки только по мере необходимости), не
зная, является ли оператор a SELECT
. Можно сделать это, вызывая mysql_store_result()
после каждого mysql_query()
(или mysql_real_query()
). Если вызов набора результатов успешно выполняется,
оператор был a SELECT
и можно считать строки. Если вызов набора результатов перестал
работать, вызвать mysql_field_count()
определить, состоял ли результат в том, чтобы фактически ожидаться. Если mysql_field_count()
нуль возвратов, оператор, возвращенный никакие данные
(указание, что это было INSERT
, UPDATE
,
DELETE
,
и т.д), и, как ожидали, не возвратит строки. Если mysql_field_count()
является ненулевым, оператор должен был возвратить
строки, но не сделал. Это указывает, что оператор был a SELECT
отказавшее. См. описание для mysql_field_count()
для примера того, как это может быть сделано.
Оба mysql_store_result()
и mysql_use_result()
позвольте Вам получить информацию о полях, которые составляют
набор результатов (число полей, их имен и типов, и т.д). Можно получить доступ к информации о поле
последовательно в строке, вызывая mysql_fetch_field()
неоднократно, или полевым числом в строке, вызывая mysql_fetch_field_direct()
. Текущая полевая позиция курсора может быть
изменена, вызывая mysql_field_seek()
.
Установка полевого курсора влияет на последующие звонки mysql_fetch_field()
. Можно также получить информацию для полей внезапно,
вызывая mysql_fetch_fields()
.
Для обнаружения и создания отчетов об ошибках, MySQL обеспечивает доступ к информации об ошибке посредством mysql_errno()
и mysql_error()
функции. Они возвращают код ошибки или сообщение об ошибке для
последний раз вызванной функции, которая может успешно выполниться или перестать работать, позволяя Вам
определить, когда ошибка произошла и каково это было.