Идите к первому, предыдущему, затем, последний(прошлый) раздел, оглавление.


21 MySQL инструментальные средства клиента и API

21.1 MySQL API C

Код API C распределен с MySQL. Это включено в mysqlclient библиотеку и позволяет программам C обращаться к базе данных.

Многие из клиентуры в MySQL исходном распределении написаны в C. Если Вы ищете примеры, которые демонстрируют, как использовать API C, смотреть на эту клиентуру.

Большинство других API клиента (все кроме Java) использует mysqlclient библиотеку, чтобы связаться с MySQL сервером. Это означает, что, например, Вы можете воспользоваться преимуществом многих из тех же самых переменных среды, которые используются в соответствии с другими программами клиента, потому что они упомянуты от библиотеки. См. раздел 13.1 Краткого обзора различных программ MySQL, для списка этих переменных.

Клиент имеет максимальный размер буфера связи. Размер буфера, который распределен первоначально (байты 16КБ) автоматически увеличен до максимального размера (заданный по умолчанию максимум - 24M). Так как буферные размеры увеличены только, поскольку варранты запроса, просто увеличивая заданный по умолчанию максимальный предел делают не в inself заставляют большее количество ресурсов использоваться. Эта проверка размера - главным образом проверка для ошибочных запросов и пакетов связи.

Буфер связи должен быть достаточно большой, чтобы содержать одиночную инструкцию SQL (для трафика " клиент прислуге ") и одной строке возвращенных данных (для трафика " прислуга клиенту "). Буфер связи Каждой тематики динамически расширен, чтобы обработать любой запрос или строку до максимального предела. Например, если Вы имеете значения BLOB, которые содержат до 16M данных, Вы должны иметь предел буфера связи по крайней мере 16M (, и в сервере и клиенте). Заданный по умолчанию максимум клиента - 24M, но заданный по умолчанию максимум в сервере - 1M. Вы можете увеличивать это, изменяя значение max_allowed_packet параметра, когда сервер начат. См. раздел 11.2.3 Настройка параметров сервера.

MySQL сервер сокращает каждый буфер связи к net_buffer_length байтам после каждого запроса. Для клиентуры, размер буфера, связанного с подключением не уменьшен, пока подключение не закрыто, в котором память клиента времени исправлена.

Если Вы программируете с тематиками, Вы должны компилировать MySQL API C с - " с клиентом сейфа нити ". Это будет делать сейф тематики API C в подключение. Вы можете позволять двум тематикам совместно использовать то же самое подключение, пока Вы делаете следующее:

Две тематики не могут посылать запрос MySQL в то же самое время на том же самом подключении. В особенности Вы должны гарантировать, что между mysql_query () и mysql_store_result () никакая другая тематика не использует то же самое подключение.
Много тематик могут обращаться к различным наборам результата, которые найдены с mysql_store_result ().
Если Вы используете mysql_use_result, Вы должны гарантировать, что никакая другая тематика не спрашивает что - нибудь относительно того же самого подключения, пока набор результатов не закрыт.

21.2 API C datatypes

MYSQL
Эта структура представляет маркер(дескриптор) на одно подключение базы данных. Это используется для почти всех функций MySQL.
MYSQL_RES
Эта структура представляет результат запроса, который возвращает строки (ВЫБОР, ПОКАЗ, ОПИСЫВАТЬ, ОБЪЯСНЯТЬ). Информация, возвращенная от запроса называется набором результатов в остатке от этого раздела.
MYSQL_ROW
Это - безопасное по типу представление одной строки данных. Это в настоящее время осуществлено как массив подсчитанных строк байтов. (Вы не можете обрабатывать их как строки с нулевым символом в конце, если полевые значения могут содержать данные в двоичном коде, потому что такие значения могут содержать нулевые(пустые) байты внутренне.) Строки получены, вызывая mysql_fetch_row ().
MYSQL_FIELD
Эта структура содержит информацию относительно поля, типа названия(имени) поля, типа и размера. Его члены описаны более подробно ниже. Вы можете получить структуры MYSQL_FIELD для каждого поля, вызывая mysql_fetch_field () неоднократно. Полевые значения - не часть этой структуры; они содержатся в структуре MYSQL_ROW.
MYSQL_FIELD_OFFSET
Это - безопасное по типу представление смещения в список поля MySQL. (Используемый mysql_field_seek ().) Смещения - полевые числа(номера) в пределах строки, начинающейся в нуле.
My_ulonglong
Тип, используемый для числа строк и для mysql_affected_rows (), mysql_num_rows () и mysql_insert_id (). Этот тип обеспечивает диапазон(дальность) 0 к 1.84e19. На некоторых системах, делая попытку печатать значение типа my_ulonglong не будет работать. Чтобы печатать такое значение, конвертируйте(преобразуйте) это к без знака длинному, и используйте формат печати %lu. Пример:
 Printf (Число строк: %lu\n ", (без знака длинный) mysql_num_rows (результат));

Структура MYSQL_FIELD содержит членов, перечисленных ниже:

Символ * название(имя)
Название(имя) поля, как строка с нулевым символом в конце.
Символ * таблица
Название(имя) таблицы, содержащей это поле, если это не расчетное поле. Для расчетных полей, значение таблицы - пустая строка.
Символ * определение
Значение по умолчанию этого поля, как строка с нулевым символом в конце. Это установлено только, если Вы используете mysql_list_fields ().
Перечисление enum_field_types тип
Тип поля. Значение типа может быть один из следующего:
Значение Типа Значение Типа
FIELD_TYPE_TINY TINYINT поле
FIELD_TYPE_SHORT SMALLINT поле
FIELD_TYPE_LONG ЦЕЛОЧИСЛЕННОЕ поле
FIELD_TYPE_INT24 MEDIUMINT поле
FIELD_TYPE_LONGLONG BIGINT поле
FIELD_TYPE_DECIMAL Поле DECIMAL ИЛИ NUMERIC
FIELD_TYPE_FLOAT Поле С ПЛАВАЮЩЕЙ ТОЧКОЙ
FIELD_TYPE_DOUBLE Поле DOUBLE ИЛИ REAL
FIELD_TYPE_TIMESTAMP TIMESTAMP поле
FIELD_TYPE_DATE ПОЛЕ ДАТЫ
FIELD_TYPE_TIME Поле время
FIELD_TYPE_DATETIME DATETIME поле
FIELD_TYPE_YEAR Поле ГОДА
FIELD_TYPE_STRING Строка (СИМВОЛ или VARCHAR) поле
FIELD_TYPE_BLOB Поле BLOB ИЛИ TEXT (используйте max_length, чтобы определить максимальную длину)
FIELD_TYPE_SET Поле НАБОРА
FIELD_TYPE_ENUM ПЕРЕЧИСЛИМОЕ поле
FIELD_TYPE_NULL Поле С НУЛЕВЫМ ТИПОМ
FIELD_TYPE_CHAR Осужденный; используйте FIELD_TYPE_TINY вместо этого
Вы можете использовать IS_NUM () макрокоманда, чтобы проверить, действительно ли поле имеет числовой тип. Передайте значение типа к IS_NUM () и это оценит к ИСТИНЕ, если поле числовое:
 Если (IS_NUM (поле - > тип)) printf (" Поле - numeric\n ");
Int длина без знака
Ширина поля, как определено на определении таблицы.
Int без знака max_length
Максимальная ширина поля для набора результатов (длина самого длинного полевого значения для строк фактически в наборе результатов). Если Вы используете mysql_store_result () или mysql_list_fields (), это содержит максимальную длину для поля. Если Вы используете mysql_use_result (), значение этой переменной нулевое.
Флажки int без знака
Различный бит - флажки для поля. Значение флажков может иметь нуль или большее количество следующего набора битов:
Значение Флажка Значение Флажка
NOT_NULL_FLAG Поле не может быть НУЛЕВОЕ(ПУСТОЕ)
PRI_KEY_FLAG Поле - часть первичной клавиши(ключа)
UNIQUE_KEY_FLAG Поле - часть уникальной клавиши(ключа)
MULTIPLE_KEY_FLAG Поле - часть не-уникальной клавиши(ключа).
UNSIGNED_FLAG Поле имеет атрибут БЕЗ ЗНАКА
ZEROFILL_FLAG Поле имеет атрибут ZEROFILL
BINARY_FLAG Поле имеет ДВОИЧНЫЙ атрибут
AUTO_INCREMENT_FLAG Поле имеет атрибут AUTO_INCREMENT
ENUM_FLAG Поле - (осуждаемое) ПЕРЕЧИСЛЕНИЕ
BLOB_FLAG Поле - БОЛЬШОЙ ДВОИЧНЫЙ ОБЪЕКТ или (осуждаемый) ТЕКСТ
TIMESTAMP_FLAG Поле - (осуждаемый) TIMESTAMP
Использование BLOB_FLAG, ENUM_FLAG и флажков TIMESTAMP_FLAG осуждается, потому что они указывают тип поля скорее чем атрибут его типа. Предпочтительно проверить поле - > тип против FIELD_TYPE_BLOB, FIELD_TYPE_ENUM или FIELD_TYPE_TIMESTAMP вместо этого. Пример ниже иллюстрирует типичное использование значения флажков:
 Если (поле - > флажки и NOT_NULL_FLAG) printf (" Поле не могут быть null\n ");
Вы можете использовать следующие макрокоманды удобства, чтобы определить булево состояние значения флажков:
IS_NOT_NULL (флажки) Истина, если это поле определено как НЕ ПУСТОЙ УКАЗАТЕЛЬ
IS_PRI_KEY (флажки) Истина, если это поле - первичная клавиша(ключ)
IS_BLOB (флажки) Истина, если это поле - БОЛЬШОЙ ДВОИЧНЫЙ ОБЪЕКТ или ТЕКСТ (осуждаемое; испытательное поле - > напечатает вместо этого)
Int десятичные числа без знака
Число десятичных чисел для числовых полей.

21.3 Краткий обзор функции API C

Функции, доступные в API C перечислены ниже и описаны в большей детали в следующем разделе. См. раздел 21.4 описания функции API C.

Mysql_affected_rows () Возвращает число строк, на которые воздействует последняя(прошлая) МОДИФИКАЦИЯ, УДАЛЯТЬ или ВСТАВЛЯТЬ запрос.
Mysql_close () Закрывает подключение сервера.
Mysql_connect () Соединяется с MySQL сервером. Эта функция осуждается; используйте mysql_real_connect () вместо этого.
Mysql_change_user () Измените(замените) пользователя и базу данных на открытом подключении.
Mysql_create_db () Создает базу данных. Эта функция осуждается; используйте команду SQL, СОЗДАЮТ БАЗУ ДАННЫХ вместо этого.
Mysql_data_seek () Ищет на произвольную строку в наборе результатов запросов.
Mysql_debug () Делает DBUG_PUSH с данной строкой.
Mysql_drop_db () Понижает(пропускает) базу данных. Эта функция осуждается; используйте БАЗУ ДАННЫХ СНИЖЕНИЯ команды SQL вместо этого.
Mysql_dump_debug_info () Заставит запись сервера отладить информацию к файлу регистрации.
Mysql_eof () Определяет, действительно ли последняя(прошлая) строка набора результатов читалась. Эта функция осуждается; mysql_errno () или mysql_error () может использоваться вместо этого.
Mysql_errno () Возвращает номер ошибки для наиболее недавно вызванная функция MySQL.
Mysql_error () Возвращает сообщение об ошибках для наиболее недавно вызванная функция MySQL.
Mysql_escape_string () Выходит специальных символов в строке для использования в инструкции SQL.
Mysql_fetch_field () Возвращает тип следующего поля таблицы.
Mysql_fetch_field_direct () Возвращает тип поля таблицы, учитывая полевой номер.
Mysql_fetch_fields () Возвращает массив всех полевых структур.
Mysql_fetch_lengths () Возвращает длины всех столбцов в текущей строке.
Mysql_fetch_row () Выбирает следующую строку от набора результатов.
Mysql_field_seek () Помещает курсор столбца в указанный столбец.
Mysql_field_count () Возвращает число столбцов результата для самого современного запроса.
Mysql_field_tell () Возвращает позицию полевого курсора, используемого для последнего(прошлого) mysql_fetch_field ().
Mysql_free_result () Освобождает память, используемую набором результатов.
Mysql_get_client_info () Возвращает информацию версии клиента.
Mysql_get_host_info () Возвращает строку, описывающую подключение.
Mysql_get_proto_info () Возвращает версию протокола, используемую подключением.
Mysql_get_server_info () Возвращает номер версии сервера.
Mysql_info () Возвращает информацию относительно наиболее недавно выполненный запрос.
Mysql_init () Получает или инициализирует структуру MYSQL.
Mysql_insert_id () Возвращает ИДЕНТИФИКАТОР, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом.
Mysql_kill () Уничтожите данную тематику.
Mysql_list_dbs () Названия(имена) базы данных Возвращений, соответствующие(согласовывающие) простому регулярному выражению.
Mysql_list_fields () Имена поля Возвращений, соответствующие(согласовывающие) простому регулярному выражению.
Mysql_list_processes () Возвращает список текущих тематик сервера.
Mysql_list_tables () Названия(имена) таблицы Возвращений, соответствующие(согласовывающие) простому регулярному выражению.
Mysql_num_fields () Возвращает число столбцов в наборе результатов.
Mysql_num_rows () Возвращает число строк в наборе результатов.
Mysql_options () Набор подключает параметры для mysql_connect ().
Mysql_ping () Проверяет(отмечает), действительно ли подключение к серверу работает, повторно соединяясь по мере необходимости.
Mysql_query () Выполняет запрос SQL, указанный как строка с нулевым символом в конце.
Mysql_real_connect () Соединяется с MySQL сервером.
Mysql_real_query () Выполняет запрос SQL, указанный как подсчитанная строка.
Mysql_reload () Сообщает серверу перезагружать таблицы предоставления.
Mysql_row_seek () Ищет на строку в наборе результатов, используя значение, возвращенное от mysql_row_tell ().
Mysql_row_tell () Возвращает позицию курсора строки.
Mysql_select_db () Соединяется с базой данных.
Mysql_shutdown () Завершает сервер базы данных.
Mysql_stat () Возвращает состояние сервера как строка.
Mysql_store_result () Отыскивает законченный набор результатов клиенту.
Mysql_thread_id () Возвращает текущую тематику ИДЕНТИФИКАТОР.
Mysql_use_result () Инициализирует результат " строка рядом " поиск набора.

Чтобы соединяться с сервером, вызовите(назовите) mysql_init () чтобы инициализировать обработчик подключения, затем вызовите(назовите) mysql_real_connect () с тем обработчиком (наряду с другой информацией типа имени хоста, названия(имени) пользователя и пароля). Когда Вы сделаны с подключением, вызовите(назовите) mysql_close () чтобы закончить это.

В то время как подключение активно, клиент может посылать запросы SQL серверу, используя mysql_query () или mysql_real_query (). Различие между этими двумя - тот mysql_query () ожидает, что запрос будет определен как строка с нулевым символом в конце принимая во внимание, что mysql_real_query () ожидает подсчитанную строку. Если строка содержит данные в двоичном коде (который может включать нулевые(пустые) байты), Вы должны использовать mysql_real_query ().

Для каждого запроса не-выбора (например, ВСТАВЬТЕ, ОБНОВИТЕ(МОДИФИЦИРУЙТЕ), УДАЛИТЕ), Вы можете выяснять, сколько на строк воздействовали (измененными)((замененными)), вызывая mysql_affected_rows ().

Поскольку ВЫБОР делает запрос, Вы отыскиваете выбранные строки в результате набор. (Обратите внимание, что некоторые инструкции ВЫБОР-ПОДОБНЫ в этом, они возвращают строки. Они включают ПОКАЗ, ОПИСЫВАЮТ и ОБЪЯСНЯЮТ. Они должны быть обработаны тот же самый путь как инструкции 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 делает это возможным для клиентуры, чтобы ответить соответственно на запросы (отыскивающий строки только по мере необходимости) без того, чтобы знать, действительно ли запрос - ВЫБОР. Вы можете делать это, вызывая mysql_store_result () после каждого mysql_query () (или mysql_real_query ()). Если запрос набора результата преуспевает, запрос был ВЫБОР, и Вы можете читать строки. Если сбои запроса набора результата, вызовите(назовите) mysql_field_count () чтобы определить, действительно ли результат должен был фактически ожидаться. Если mysql_field_count () нуль возвращений, запрос не возвратил никакие данные (индикация, что это была ВСТАВКА, ОБНОВИТЕ(МОДИФИЦИРУЙТЕ), УДАЛИТЕ, и т.д.), и таким образом не ожидаемый, чтобы возвратить строки. Если mysql_field_count () ненулевой, запрос должен был возвратить строки, но не делал. Это указывает, что запрос был ВЫБОР, который потерпел неудачу. См. описание для 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 () функциями. Они возвращают код ошибки или сообщение об ошибках для наиболее недавно вызванная функция, которая может следовать или терпеть неудачу, позволяя Вам определить, когда ошибка произошла и, каково это было.

21.4 Описания функции API C

В описаниях ниже, параметр или возвращаемое значение ПУСТОГО УКАЗАТЕЛЯ означает ПУСТОЙ УКАЗАТЕЛЬ в смысле языка программирования C, не MySQL значение NULL.

Функции, которые возвращают значение вообще, возвращают указатель или целое число. Если не определено иначе, функции, возвращающие указатель возвращают не-нулевое(не-пустое) значение, чтобы указать успех или значение NULL, чтобы указать ошибку, и функции, возвращающие целочисленный нуль возвращения, чтобы указать успех или ненулевой, чтобы указать ошибку. Обратите внимание, что " " ненулевой " означает только это. Если функциональное описание не говорит иначе, не проверите против значения другого чем нуль:

 Если (результат) /* исправляет */ ... ошибка ... если (кончается < 0) /* неправильный */ ... ошибка ..., если (кончаются == -1) /* неправильный */ ... ошибка ...

Когда функция возвращает ошибку, подраздел Ошибок функционального описания перечисляет возможные типы ошибок. Вы можете выяснять который из них произо&ый, вызывая mysql_errno (). Представление строки ошибки может быть получено, вызывая mysql_error ().

21.4.1 Mysql_affected_rows ()

My_ulonglong mysql_affected_rows (MYSQL *mysql)

21.4.1.1 Описание

Возвращает число строк, на которые воздействуют (измененный)((замененный)) последней(прошлой) МОДИФИКАЦИЕЙ, УДАЛЯТЬ или ВСТАВЛЯТЬ запрос. Может Называться немедленно после mysql_query () для МОДИФИКАЦИИ, инструкций DELETE ИЛИ INSERT. Для инструкций SELECT, mysql_affected_rows () работает подобно mysql_num_rows ().

Mysql_affected_rows () в настоящее время осуществлен как макрокоманда.

21.4.1.2 Возвращаемые значения

Целое число большее чем нуль указывает число строк, на которые воздействуют или найденный. Нуль указывает, что никакие отчеты(рекорды) не соответствовали(согласовали) предложению WHERE в запросе или что никакой запрос не все же был выполнен. -1 указывает, что запрос возвратил ошибку или что, для запроса ВЫБОРА, mysql_affected_rows () назывался до запроса mysql_store_result ().

21.4.1.3 Ошибки

Ни один.

21.4.1.4 Пример

  mysql_query(&mysql,"UPDATE Изделия(программы) УСТАНАВЛИВАЮТ cost=cost*1.25 ГДЕ group=10 "); printf (" %d изделия(программы) updated",mysql_affected_rows(&mysql)); 

21.4.2 Mysql_close ()

Пусто mysql_close (MYSQL *mysql)

21.4.2.1 Описание

Закрывает предварительно открытое подключение. Mysql_close () также освободил бы маркер(дескриптор) подключения, указанный mysql, если маркер(дескриптор) был распределен автоматически mysql_init () или mysql_connect ().

21.4.2.2 Возвращаемые значения

Ни один.

21.4.2.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.3 Mysql_connect ()

MYSQL *mysql_connect (MYSQL *mysql, символ константы *host, символ константы *user, символ константы *passwd)

21.4.3.1 Описание

Эта функция осуждается. Предпочтительно использовать mysql_real_connect () вместо этого.

Mysql_connect () пытается устанавливать подключение к MySQL двигателю базы данных, выполняющему на главном компьютере. Mysql_connect () должен завершить успешно прежде, чем Вы можете выполнять любую из других функций API, за исключением mysql_get_client_info ().

Значения параметров - тот же самый что касается соответствующих параметров для mysql_real_connect () с различием, что подключение paramater может быть НУЛЕВОЕ(ПУСТОЕ). В этом случае(регистре) API C распределяет память для структуры подключения автоматически и освобождает это, когда Вы вызываете(называете) mysql_close (). Недостаток(неудобство) этого подхода - то, что Вы не можете отыскивать сообщение об ошибках, если подключение терпит неудачу. (Чтобы получить данные об ошибках от mysql_errno () или mysql_error (), Вы должны обеспечить правильный(допустимый) указатель MYSQL.)

21.4.3.2 Возвращаемые значения

Тот же самый что касается mysql_real_connect ().

21.4.3.3 Ошибки

Тот же самый что касается mysql_real_connect ().

21.4.4 Mysql_change_user ()

My_bool mysql_change_user (MYSQL *mysql, символ константы *user, символ константы *password, символ константы *db)

21.4.4.1 Описание

Изменяет(заменяет) пользователя и заставляет базу данных, указанную db стать заданной по умолчанию (текущей) базой данных на подключении, указанном mysql. В последующих запросах, эта база данных - значение по умолчанию для ссылок(справочников) таблицы, которые не включают явный спецификатор базы данных.

Эта функция была представлена в MySQL 3.23.3.

Mysql_change_user () терпит неудачу, если связанный пользователь не может быть заверен или если он не имеет разрешение использовать базу данных. В этом случае(регистре) пользователь и база данных не изменен(заменен)

Db параметр может быть установлен в ПУСТОЙ УКАЗАТЕЛЬ, если Вы не хотите иметь заданную по умолчанию базу данных.

21.4.4.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если ошибка произошла.

21.4.4.3 Ошибки

Тот же самый, что Вы можете добраться от mysql_real_connect ().

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.
ER_UNKNOWN_COM_ERROR
MySQL сервер не осуществляет эту команду (вероятно старый сервер)
ER_ACCESS_DENIED_ERROR
Пользователь или пароль были неправильны.
ER_BAD_DB_ERROR
База данных не существовало.
ER_DBACCESS_DENIED_ERROR
Пользователь не имел прав доступа к базе данных.
ER_WRONG_DB_NAME
Название(имя) базы данных было слишком длинно.

21.4.4.4 Пример

 Если (mysql_change_user(&mysql, "пользователь", "пароль", "new_database")) {fprintf (stderr, " Не сумел изменять(заменять) пользователя. Ошибка: %s\n ", mysql_error(&mysql));} 

21.4.5 Mysql_create_db ()

Int mysql_create_db (MYSQL *mysql, символ константы *db)

21.4.5.1 Описание

Создает базу данных, названную db параметром.

Эта функция осуждается. Предпочтительно использовать mysql_query () чтобы выпустить инструкцию SQL CREATE DATABASE вместо этого.

21.4.5.2 Возвращаемые значения

Нуль, если база данных была создана успешно. Ненулевое, если ошибка произошла.

21.4.5.3 Интегралы вероятности ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.5.4 Пример

  if(mysql_create_db(&mysql, "my_database")) {fprintf (stderr, " Не сумел создавать новую базу данных. Ошибка: %s\n ", mysql_error(&mysql));} 

21.4.6 Mysql_data_seek ()

Пусто mysql_data_seek (MYSQL_RES *result, длинное длинное смещение без знака)

21.4.6.1 Описание

Ищет на произвольную строку в наборе результатов запросов. Это требует, чтобы структура набора результата содержала полный результат запроса, так что mysql_data_seek () может использоваться в конъюнкции только с mysql_store_result (), не с mysql_use_result ().

Смещение должно быть значение в диапазоне(дальности) от 0 до mysql_num_rows -1 (результат).

21.4.6.2 Возвращаемые значения

Ни один.

21.4.6.3 Ошибки

Ни один.

21.4.7 Mysql_debug ()

Пусто mysql_debug (символ *debug)

21.4.7.1 Описание

Делает DBUG_PUSH с данной строкой. Mysql_debug () использует Фреда Фиша, отлаживают библиотеку. Чтобы использовать эту функцию, Вы должны компилировать библиотеку клиентов, чтобы поддержать отладку. См. раздел G.1 Отладка MySQL сервера. См. раздел G.2 Отладка MySQL клиента.

21.4.7.2 Возвращаемые значения

Ни один.

21.4.7.3 Ошибки

Ни один.

21.4.7.4 Пример

Запрос, показанный ниже заставляет библиотеку клиентов генерировать файл следа в "/tmp/client.trace" на машине клиента:

 Mysql_debug (" d:t:O, /tmp/client.trace ");

21.4.8 Mysql_drop_db ()

Int mysql_drop_db (MYSQL *mysql, символ константы *db)

21.4.8.1 Описание

Понижает(пропускает) базу данных, названную db параметром.

Эта функция осуждается. Предпочтительно использовать mysql_query () чтобы выпустить инструкцию SQL DROP DATABASE вместо этого.

21.4.8.2 Возвращаемые значения

Нуль, если база данных была понижена успешно. Ненулевое, если ошибка произошла.

21.4.8.3 Интегралы вероятности ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.8.4 Пример

  if(mysql_drop_db(&mysql, "my_database")) fprintf (stderr, " Не сумел понижать(пропускать) базу данных: Ошибка: %s\n ", mysql_error(&mysql)); 

21.4.9 Mysql_dump_debug_info ()

Int mysql_dump_debug_info (MYSQL *mysql)

21.4.9.1 Описание

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

21.4.9.2 Возвращаемые значения

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

21.4.9.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.10 Mysql_eof ()

My_bool mysql_eof (MYSQL_RES *result)

21.4.10.1 Описание

Эта функция осуждается. Mysql_errno () или mysql_error () может использоваться вместо этого.

Mysql_eof () определяет, действительно ли последняя(прошлая) строка набора результатов читалась.

Если Вы приобретаете результат, сходят с успешного запроса к mysql_store_result (), клиент принимает полный набор в одной операции. В этом случае(регистре), НУЛЕВОЕ(ПУСТОЕ) возвращение от mysql_fetch_row () всегда означает, что конец набора результатов был достигнут, и ненужно вызвать(назвать) mysql_eof ().

С другой стороны, если Вы используете mysql_use_result () чтобы инициализировать поиск набора результата, строки набора получены от сервера один за другим, поскольку Вы вызываете(называете) mysql_fetch_row () неоднократно. Поскольку ошибка может происходить на подключении в течение этого процесса, НУЛЕВОЕ(ПУСТОЕ) возвращаемое значение от mysql_fetch_row () не обязательно подразумевает, что конец набора результатов был достигнут обычно. В этом случае(регистре), Вы можете использовать mysql_eof () чтобы определить то, что случалось. Mysql_eof () возвращает ненулевое значение, если конец набора результатов был достигнут и нуль, если ошибка произошла.

Исторически, mysql_eof () предшествует стандарту MySQL интегралы вероятности ошибки mysql_errno () и mysql_error (). Так как те интегралы вероятности ошибки обеспечивают ту же самую информацию, их использование предпочтено по mysql_eof (), который теперь осуждается. (Фактически, они обеспечивают подробную информацию, так как mysql_eof () возвращает только булево значение принимая во внимание, что интегралы вероятности ошибки указывают причину для ошибки, когда каждый происходит.)

21.4.10.2 Возвращаемые значения

Нуль, если ошибка произошла. Ненулевое, если конец набора результатов был достигнут.

21.4.10.3 Ошибки

Ни один.

21.4.10.4 Пример

Следующий пример показывает, как Вы могли бы использовать mysql_eof ():

  mysql_query(&mysql,"SELECT * ОТ some_table "); кончитесь = mysql_use_result(&mysql);while((row = mysql_fetch_row (результат))) {// делает кое-что с данными} если (! Mysql_eof (результат)) // mysql_fetch_row () потерпел неудачу из-за ошибки {fprintf (stderr, " Ошибка: %s\n ", mysql_error(&mysql));} 

Однако, Вы можете достигать того же самого эффекта со стандартом MySQL интегралы вероятности ошибки:

  mysql_query(&mysql,"SELECT * ОТ some_table "); кончитесь = mysql_use_result(&mysql);while((row = mysql_fetch_row (результат))) {// кое-что с data}if(mysql_errno(&mysql)) // mysql_fetch_row () потерпело неудачу из-за ошибки {fprintf (stderr, " Ошибка: %s\n ", mysql_error(&mysql));} 

21.4.11 Mysql_errno ()

Int без знака mysql_errno (MYSQL *mysql)

21.4.11.1 Описание

Для подключения, указанного mysql, mysql_errno () возвращает код ошибки для наиболее недавно вызванная функция API, которая может следовать или терпеть неудачу. Возвращаемое значение нуля означает, что никакая ошибка не произошла. Числа(номера) сообщения об ошибках Клиента перечислены в MySQL "errmsg.h" файл заголовка. Числа(номера) сообщения об ошибках Сервера перечислены в "mysqld_error.h"

21.4.11.2 Возвращаемые значения:

Значение кода ошибки. Нуль, если никакая ошибка не произошла.

21.4.11.3 Ошибки

Ни один.

21.4.12 Mysql_error ()

Символ *mysql_error (MYSQL *mysql)

21.4.12.1 Описание

Для подключения, указанного mysql, mysql_error () возвращает сообщение об ошибках для наиболее недавно вызванная функция API, которая может следовать или терпеть неудачу. Пустая строка (" ") была бы возвращена, если никакая ошибка не произошла. Это означает следующий, два испытания эквивалентны:

  if(mysql_errno(&mysql)) {// ошибка occurred}if(mysql_error(&mysql)[0]! = '\0 ') {// ошибка произошел}

Язык сообщений об ошибках клиента может быть изменен(заменен), перетранслируя MySQL библиотеку клиентов. В настоящее время Вы можете выбирать сообщения об ошибках на нескольких различных языках. См. раздел 10.1, какие языки поддержаны MySQL?.

21.4.12.2 Возвращаемые значения

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

21.4.12.3 Ошибки

Ни один.

21.4.13 Mysql_escape_string ()

Int без знака mysql_escape_string (символ *to, символ константы *from, int длина без знака)

21.4.13.1 Описание

Кодирует строку в от к выйденной строке SQL, которая может быть послана серверу в инструкции SQL, размещает результат в к, и добавляет заканчивающийся байт пустого указателя. Закодированные Символы - NUL (ASCII 0), "\n", "\r", "\", " ", """ и Управление - Z (см. раздел 7.1 Литералов: как записывать строки и числа(номера)).

Строка, указанная от должна быть байты длины долго. Вы должны распределить, чтобы буферизовать, чтобы быть по крайней мере length*2+1 байтами долго. (В худшем случае(регистре), каждый символ может был должен быть закодирован как использование двух байтов, и Вы нуждаетесь в участке памяти для заканчивающегося байта пустого указателя.) Когда mysql_escape_string () возвращения, содержание к будут строка с нулевым символом в конце. Возвращаемое значение - длина закодированной строки, не, включая заканчивающийся нулевой символ.

21.4.13.2 Пример

 Запрос символа [1000], *end; закончите = strmov (запрос, " ВСТАВЬТЕ В значения test_table ("); *end ++ = '\'; закончите + = mysql_escape_string (конец, ", что - этот ", 11); *end ++ = '\';*end ++ = ','; *end ++ = '\'; закончите + = mysql_escape_string (конец, " данные в двоичном коде: \0\r\n ", 16); *end ++ = '\';*end ++ = ')'; если (mysql_real_query(&mysql,query,(unsigned Int) (конец - запрос))) {fprintf (stderr, " Не сумел вставлять строку, Ошибка: %s\n ", mysql_error(&mysql));} 

Strmov () функция, используемая в примере включена в mysqlclient библиотеку и работает подобно strcpy () но возвращает указатель на заканчивающийся пустой указатель первого параметра.

21.4.13.3 Возвращаемые значения

Длина значения, помещенного в к, не, включая заканчивающийся нулевой символ.

21.4.13.4 Ошибки

Ни один.

21.4.14 Mysql_fetch_field ()

MYSQL_FIELD *mysql_fetch_field (MYSQL_RES *result)

21.4.14.1 Описание

Возвращает определение одного столбца набора результатов как структура MYSQL_FIELD. Вызовите(назовите) эту функцию неоднократно, чтобы отыскать информацию относительно всех столбцов в наборе результатов. Mysql_fetch_field () возвращает ПУСТОЙ УКАЗАТЕЛЬ, когда не больше полей оставлены.

Mysql_fetch_field () сброшен, чтобы возвратить информацию относительно первого поля, каждый раз Вы выполняете новый запрос ВЫБОРА. На поле, возвращенное mysql_fetch_field () также воздействуют запросы к mysql_field_seek ().

Если вы назвали mysql_query () чтобы исполнить ВЫБОР на таблице, но не назвали mysql_store_result (), MySQL возвращает заданную по умолчанию длину капли (байты 8КБ) если Вы вызываете(называете) mysql_fetch_field () чтобы просить о длине поля BLOB. (Размер 8КБ выбран, потому что MySQL не знает максимальную длину для БОЛЬШОГО ДВОИЧНОГО ОБЪЕКТА. Это должно быть сделано с перестраиваемой конфигурацией когда-нибудь.) Как только вы отыскали, набор результатов, поле - > max_length содержит длину самого большого значения для этого столбца в определенном запросе.

21.4.14.2 Возвращаемые значения

Структура MYSQL_FIELD для текущего столбца. ПУСТОЙ УКАЗАТЕЛЬ, если никакие столбцы не оставлены.

21.4.14.3 Ошибки

Ни один.

21.4.14.4 Пример

 MYSQL_FIELD *field; в то время как ((поле = mysql_fetch_field (результат))) {printf (" имя поля %s\n ", поле - > название(имя));}

21.4.15 Mysql_fetch_fields ()

MYSQL_FIELD *mysql_fetch_fields (MYSQL_RES *result)

21.4.15.1 Описание

Возвращает массив всех структур MYSQL_FIELD для набора результатов. Каждая структура обеспечивает определение поля для одного столбца набора результатов.

21.4.15.2 Возвращаемые значения

Массив структур MYSQL_FIELD для всех столбцов набора результатов.

21.4.15.3 Ошибки

Ни один.

21.4.15.4 Пример

 Int без знака num_fields; int без знака я; MYSQL_FIELD *fields; num_fields = mysql_num_fields (результат); поля = mysql_fetch_fields (результат); для (я = 0; я < num_fields; я ++) {printf (" Поле - %s\n ", я, поля [я] .name);}

21.4.16 Mysql_fetch_field_direct ()

MYSQL_FIELD *mysql_fetch_field_direct (MYSQL_RES *result, int без знака fieldnr)

21.4.16.1 Описание

Учитывая полевой номер fieldnr для столбца в пределах набора результатов, возвращения, что определение поля столбца как структура MYSQL_FIELD. Вы можете использовать эту функцию, чтобы отыскать определение для произвольного столбца. Значение fieldnr должно быть в диапазоне(дальности) от 0 до mysql_num_fields -1 (результат).

21.4.16.2 Возвращаемые значения

Структура MYSQL_FIELD для указанного столбца.

21.4.16.3 Ошибки

Ни один.

21.4.16.4 Пример

 Int без знака num_fields; int без знака я; MYSQL_FIELD *field; num_fields = mysql_num_fields (результат); для (я = 0; я < num_fields; я ++) {поле = mysql_fetch_field_direct (результат, i); printf (" Поле - %s\n ", я, поле - > название(имя));}

21.4.17 Mysql_fetch_lengths ()

Длинный *mysql_fetch_lengths без знака (MYSQL_RES *result)

21.4.17.1 Описание

Возвращает длины столбцов текущей строки в пределах набора результатов. Если Вы планируете копировать полевые значения, эта информация длины также полезна для оптимизации, потому что Вы можете избегать вызывать strlen (). Кроме того, если набор результатов содержит данные в двоичном коде, Вы должны использовать эту функцию, чтобы определить размер данных, потому что strlen () возвращает неправильные результаты для любого поля, содержащего нулевые символы.

Длина для пустых столбцов и для столбцов, содержащих значения NULL нулевая. Чтобы видеть, как отличить эти два случая(дел), см. описание для mysql_fetch_row ().

21.4.17.2 Возвращаемые значения

Массив длинных целых чисел без знака, представляющих размер каждого столбца (не, включая любые нулевые символы завершения). ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.17.3 Ошибки

Mysql_fetch_lengths () правилен(допустим) только для текущей строки набора результатов. Это возвращает ПУСТОЙ УКАЗАТЕЛЬ, если Вы вызываете(называете) это перед запросом mysql_fetch_row () или после поиска всех строк в результате.

21.4.17.4 Пример

 MYSQL_ROW строка; длинный *lengths без знака; int без знака num_fields; int без знака я; строка = mysql_fetch_row (результат); если (строка) {num_fields = mysql_num_fields (результат); длины = mysql_fetch_lengths (результат); для (я = 0; я < num_fields; я ++) {printf (" Столбец %u - %lu байты в длине \n ", мне, длины [я]);}}

21.4.18 Mysql_fetch_row ()

MYSQL_ROW mysql_fetch_row (MYSQL_RES *result)

21.4.18.1 Описание

Отыскивает следующую строку набора результатов. Когда используется после mysql_store_result (), mysql_fetch_row () возвращает ПУСТОЙ УКАЗАТЕЛЬ, когда не имеется больше строк, чтобы отыскать. Когда используется после mysql_use_result (), mysql_fetch_row () возвращает ПУСТОЙ УКАЗАТЕЛЬ, когда не имеется больше строк, чтобы отыскать или если ошибка произошла.

Число значений в строке дается mysql_num_fields (результат). Если строка проводит(держит) возвращаемое значение от запроса до mysql_fetch_row (), к указателям на значения обращаются как строка [0] к строке [mysql_num_fields (результат) -1]. НУЛЕВЫЕ(ПУСТЫЕ) значения в строке обозначены указателями NULL.

Длины полевых значений в строке могут быть получены, вызывая mysql_fetch_lengths (). Пустые поля и поля, содержащие ПУСТОЙ УКАЗАТЕЛЬ оба имеют длину 0; Вы можете отличать их, проверяя указатель для полевого значения. Если указатель НУЛЕВОЙ(ПУСТОЙ), поле НУЛЕВОЕ(ПУСТОЕ); иначе поле пусто.

21.4.18.2 Возвращаемые значения

Структура MYSQL_ROW для следующей строки. ПУСТОЙ УКАЗАТЕЛЬ, если не имеется больше строк, чтобы отыскать или если ошибка произошла.

21.4.18.3 Ошибки

CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.18.4 Пример

 MYSQL_ROW строка; int без знака num_fields; int без знака я; num_fields = mysql_num_fields (результат); в то время как ((строка = mysql_fetch_row (результат))) {длинный *lengths без знака; длины = mysql_fetch_lengths (результат); для (я = 0; я < num_fields; я ++) {printf (" [% .*s] ", (int) длины [я], строка [я]? Строка [я]: "ПУСТОЙ УКАЗАТЕЛЬ");} printf ("\n");}

21.4.19 Mysql_field_count ()

Int без знака mysql_field_count (MYSQL *mysql)

Если Вы используете версию MySQL ранее чем 3.22.24, Вы должны использовать int без знака mysql_num_fields (MYSQL *mysql) вместо этого.

21.4.19.1 Описание

Возвращает число столбцов для самого современного запроса на подключении.

Нормальное использование этой функции - то, когда mysql_store_result () возвратил ПУСТОЙ УКАЗАТЕЛЬ (и таким образом Вы не имеете никакого указателя набора результата). В этом случае(регистре), Вы можете вызывать(называть) mysql_field_count () чтобы определить, действительно ли mysql_store_result () должен был произвести не-пустой результат. Это позволяет программе клиента брать надлежащее действие без того, чтобы знать, действительно ли запрос был ВЫБОР (или ВЫБОР-ПОДОБНЫЙ) инструкция. Пример, показанный ниже иллюстрирует, как это может быть сделано.

См. раздел 21.4.51, почему - это, что после mysql_query () успех возвращений, mysql_store_result () иногда возвращает ПУСТОЙ УКАЗАТЕЛЬ?.

21.4.19.2 Возвращаемые значения

Целое число без знака, представляющее число полей в наборе результатов.

21.4.19.3 Ошибки

Ни один.

21.4.19.4 Пример

 MYSQL_RES *result; int без знака num_fields; int без знака num_rows; если (mysql_query(&mysql,query_string)) {// ошибка} еще // запрос следовал, процесс за любыми данными, возвращенными этим {результат = mysql_store_result(&mysql); если (результат) // имеются строки {num_fields = mysql_num_fields (результат); // отыскивают строки, затем звонят, mysql_free_result (результат)} еще // mysql_store_result () не возвратил ничто; это должно иметь? {if(mysql_field_count(&mysql) == 0) {// запрос не возвращает данные // (это не было ВЫБОР) num_rows = mysql_affected_rows(&mysql);} еще // mysql_store_result () должен был возвратить данные {fprintf (stderr, " Ошибка: %s\n ", mysql_error(&mysql

Альтернатива должна заменить mysql_field_count(&mysql) запрос с mysql_errno(&mysql). В этом случае(регистре), Вы проверяете непосредственно для ошибки от mysql_store_result () скорее чем выведение из значения mysql_field_count () действительно ли инструкция была ВЫБОР.

21.4.20 Mysql_field_seek ()

MYSQL_FIELD_OFFSET mysql_field_seek (MYSQL_RES *result, MYSQL_FIELD_OFFSET смещение)

21.4.20.1 Описание

Устанавливает полевой курсор к данному смещению. Следующий запрос к mysql_fetch_field () отыщет определение поля столбца, связанного с этим смещение.

Чтобы искать на начало строки, передайте значение смещения нуля.

21.4.20.2 Возвращаемые значения

Предыдущее значение полевого курсора.

21.4.20.3 Ошибки

Ни один.

21.4.21 Mysql_field_tell ()

MYSQL_FIELD_OFFSET mysql_field_tell (MYSQL_RES *result)

21.4.21.1 Описание

Возвращает позицию полевого курсора, используемого для последнего(прошлого) mysql_fetch_field (). Это значение может использоваться как параметр к mysql_field_seek ().

21.4.21.2 Возвращаемые значения

Смещение тока(потока) полевого курсора.

21.4.21.3 Ошибки

Ни один.

21.4.22 Mysql_free_result ()

Пусто mysql_free_result (MYSQL_RES *result)

21.4.22.1 Описание

Освобождает память, распределенную для результата, установленного mysql_store_result (), mysql_use_result (), mysql_list_dbs (), и т.д. Когда Вы сделаны с набором результатов, Вы должны освободить память, которую это использует, вызывая mysql_free_result ().

21.4.22.2 Возвращаемые значения

Ни один.

21.4.22.3 Ошибки

Ни один.

21.4.23 Mysql_get_client_info ()

Символ *mysql_get_client_info (пусто)

21.4.23.1 Описание

Возвращает строку, которая представляет версию библиотеки клиента.

21.4.23.2 Возвращаемые значения

Символьная строка, которая представляет MySQL версию библиотеки клиента.

21.4.23.3 Ошибки

Ни один.

21.4.24 Mysql_get_host_info ()

Символ *mysql_get_host_info (MYSQL *mysql)

21.4.24.1 Описание

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

21.4.24.2 Возвращаемые значения

Символьная строка, представляющая имя хоста сервера и тип подключения.

21.4.24.3 Ошибки

Ни один.

21.4.25 Mysql_get_proto_info ()

Int без знака mysql_get_proto_info (MYSQL *mysql)

21.4.25.1 Описание

Возвращает версию протокола, используемую текущим подключением.

21.4.25.2 Возвращаемые значения

Целое число без знака, представляющее версию протокола, используемую текущим подключением.

21.4.25.3 Ошибки

Ни один.

21.4.26 Mysql_get_server_info ()

Символ *mysql_get_server_info (MYSQL *mysql)

21.4.26.1 Описание

Возвращает строку, которая представляет номер версии сервера.

21.4.26.2 Возвращаемые значения

Символьная строка, которая представляет номер версии сервера.

21.4.26.3 Ошибки

Ни один.

21.4.27 Mysql_info ()

Символ *mysql_info (MYSQL *mysql)

21.4.27.1 Описание

Отыскивает строку, обеспечивающую информацию относительно наиболее недавно выполненный запрос, но только для инструкций, перечисленных ниже. Для других инструкций, mysql_info () возвращает ПУСТОЙ УКАЗАТЕЛЬ. Формат строки изменяется в зависимости от типа запроса, как описано ниже. Числа(номера) иллюстративны только; строка будет содержать значения, соответствующие запросу.

ВСТАВЬТЕ В ..., ВЫБИРАЮТ ...
Формат Строки: Отчеты(рекорды): 100 Дубликатов: 0 Предупреждений: 0
ВСТАВЬТЕ В ЗНАЧЕНИЯ ... (...), (...), (...) ...
Формат Строки: Отчеты(рекорды): 3 Дубликата: 0 Предупреждений: 0
ЗАГРУЗИТЕ ДАННЫЕ INFILE ...
Формат Строки: Отчеты(рекорды): 1 Удаленный: 0 Пропущенный: 0 Предупреждений: 0
ИЗМЕНИТЕ ТАБЛИЦУ
Формат Строки: Отчеты(рекорды): 3 Дубликата: 0 Предупреждений: 0
МОДИФИКАЦИЯ
Формат Строки: согласованные Строки: 40 Измененный(замененный): 40 Предупреждений: 0

Обратите внимание, что mysql_info () возвращает не-нулевое(не-пустое) значение для ВСТАВКИ ... инструкция VALUES только, если множественные списки значения определены в инструкции.

21.4.27.2 Возвращаемые значения

Символьная строка, представляющая дополнительную информацию относительно наиболее недавно выполненный запрос. ПУСТОЙ УКАЗАТЕЛЬ, если никакая информация не доступна для запроса.

21.4.27.3 Ошибки

Ни один.

21.4.28 Mysql_init ()

MYSQL *mysql_init (MYSQL *mysql)

21.4.28.1 Описание

Распределяет или инициализирует объект(цель) MYSQL, подходящий для mysql_real_connect (). Если mysql - указатель NULL, функция распределяет, инициализирует и возвращает новый объект(цель). Иначе объект(цель) инициализирован, и адрес объекта(цели) возвращен. Если mysql_init () распределяет новый объект(цель), это будет освобождено, когда mysql_close () называется, чтобы закрыть подключение.

21.4.28.2 Возвращаемые значения

Инициализированный маркер(дескриптор) MYSQL*. ПУСТОЙ УКАЗАТЕЛЬ, если имелась недостаточная память, чтобы распределить новый объект(цель).

21.4.28.3 Ошибки

В случае недостаточной памяти, ПУСТОЙ УКАЗАТЕЛЬ возвращен.

21.4.29 Mysql_insert_id ()

My_ulonglong mysql_insert_id (MYSQL *mysql)

21.4.29.1 Описание

Возвращает ИДЕНТИФИКАТОР, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом. Используйте эту функцию после того, как Вы выполнили запрос ВСТАВКИ в таблицу, которая содержит поле AUTO_INCREMENT.

Обратите внимание, что mysql_insert_id () возвращается 0, если предыдущий запрос не генерирует значение AUTO_INCREMENT. Если Вы должны сохранить значение на позже, убедитесь, что вызвали(назвали) mysql_insert_id () немедленно после запроса, который генерирует значение.

Также обратите внимание, что значение SQL LAST_INSERT_ID () функция всегда содержит наиболее недавно сгенерированное значение AUTO_INCREMENT, и не сброшена между запросами, так как значение той функции поддерживается в сервере.

21.4.29.2 Возвращаемые значения

Значение поля AUTO_INCREMENT, которое было модифицировано предыдущим запросом. Возвращения обнулили бы, если не имелось никакого предыдущего запроса на подключении или если запрос не обновлял(модифицировал) значение AUTO_INCREMENT.

21.4.29.3 Ошибки

Ни один.

21.4.30 Mysql_kill ()

Int mysql_kill (MYSQL *mysql, длинный pid без знака)

21.4.30.1 Описание

Просит, чтобы сервер уничтожил тематику, указанную pid.

21.4.30.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если ошибка произошла.

21.4.30.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.31 Mysql_list_dbs ()

MYSQL_RES *mysql_list_dbs (MYSQL *mysql, символ константы *wild)

21.4.31.1 Описание

Возвращает набор результатов, состоящий из названий(имен) базы данных на сервере, которые соответствуют простому регулярному выражению, указанному диким параметром. Дикое может содержать групповые символы "%" или "_", или может быть указатель NULL, чтобы соответствовать всем базам данных. Запрос mysql_list_dbs () подобен выполнению баз данных ПОКАЗА запроса [ПОДОБНО дикому].

Вы должны освободить набор результатов с mysql_free_result ().

21.4.31.2 Возвращаемые значения

Набор результатов MYSQL_RES для успеха. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.31.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_OUT_OF_MEMORY
Недостаточно памяти.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.32 Mysql_list_fields ()

MYSQL_RES *mysql_list_fields (MYSQL *mysql, символ константы *table, символ константы *wild)

21.4.32.1 Описание

Возвращает набор результатов, состоящий из имен поля в данной таблице, которые соответствуют простому регулярному выражению, указанному диким параметром. Дикое может содержать групповые символы "%" или "_", или может быть указатель NULL, чтобы соответствовать всем полям. Запрос mysql_list_fields () подобен выполнению СТОЛБЦОВ ПОКАЗА запроса ОТ tbl_name [ПОДОБНО дикому].

Обратите внимание, что рекомендуется, чтобы Вы использовали СТОЛБЦЫ ПОКАЗА ОТ tbl_name вместо mysql_list_fields ().

Вы должны освободить набор результатов с mysql_free_result ().

21.4.32.2 Возвращаемые значения

Набор результатов MYSQL_RES для успеха. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.32.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.33 Mysql_list_processes ()

MYSQL_RES *mysql_list_processes (MYSQL *mysql)

21.4.33.1 Описание

Возвращает набор результатов, описывающий текущие тематики сервера. Это - тот же самый вид информации как сообщенное mysqladmin processlist или ПОКАЗОМ PROCESSLIST запрос.

Вы должны освободить набор результатов с mysql_free_result ().

21.4.33.2 Возвращаемые значения

MYSQL_RES rsult набор для успеха. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.33.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.34 Mysql_list_tables ()

MYSQL_RES *mysql_list_tables (MYSQL *mysql, символ константы *wild)

21.4.34.1 Описание

Возвращает набор результатов, состоящий из названий(имен) таблицы в текущей базе данных, которые соответствуют простому регулярному выражению, указанному диким параметром. Дикое может содержать групповые символы "%" или "_", или может быть указатель NULL, чтобы соответствовать всем таблицам. Запрос mysql_list_tables () подобен выполнению таблиц ПОКАЗА запроса [ПОДОБНО дикому].

Вы должны освободить набор результатов с mysql_free_result ().

21.4.34.2 Возвращаемые значения

Набор результатов MYSQL_RES для успеха. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.34.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.35 Mysql_num_fields ()

Int без знака mysql_num_fields (MYSQL_RES *result)

Или

Int без знака mysql_num_fields (MYSQL *mysql)

Вторая форма не работает на MySQL 3.22.24 или более новый. Чтобы передавать параметр MYSQL*, Вы должны использовать int без знака mysql_field_count (MYSQL *mysql) вместо этого.

21.4.35.1 Описание

Возвращает число столбцов в наборе результатов.

Обратите внимание, что Вы можете получить число столбцов или от указателя до набора результатов или к маркеру(дескриптору) подключения. Вы использовали бы маркер(дескриптор) подключения, если mysql_store_result () или mysql_user_result () возвращенный ПУСТОЙ УКАЗАТЕЛЬ (и таким образом Вы не имеют никакого указателя набора результата). В этом случае(регистре), Вы можете вызывать(называть) mysql_field_count () чтобы определить, действительно ли mysql_store_result () должен был произвести не-пустой результат. Это позволяет программе клиента брать надлежащее действие без того, чтобы знать, действительно ли запрос был ВЫБОР (или ВЫБОР-ПОДОБНЫЙ) инструкция. Пример, показанный ниже иллюстрирует, как это может быть сделано.

См. раздел 21.4.51, почему - это, что после mysql_query () успех возвращений, mysql_store_result () иногда возвращает ПУСТОЙ УКАЗАТЕЛЬ?.

21.4.35.2 Возвращаемые значения

Целое число без знака, представляющее число полей в наборе результатов.

21.4.35.3 Ошибки

Ни один.

21.4.35.4 Пример

 MYSQL_RES *result; int без знака num_fields; int без знака num_rows; если (mysql_query(&mysql,query_string)) {// ошибка} еще // запрос следовал, процесс за любыми данными, возвращенными этим {результат = mysql_store_result(&mysql); если (результат) // имеются строки {num_fields = mysql_num_fields (результат); // отыскивают строки, затем звонят, mysql_free_result (результат)} еще // mysql_store_result () не возвратил ничто; это должно иметь? {Если (mysql_errno(&mysql))	 {Fprintf (stderr, " Ошибка: %s\n ", mysql_error(&mysql));	} еще, если (mysql_field_count(&mysql) == 0) {// запрос не возвращает данные // (это не было ВЫБОР) num_rows = mysql_affected_rows(&mysql

Альтернатива (если Вы ЗНАЕТЕ, что ваш запрос должен был возвратить набор результатов) должна заменить mysql_errno(&mysql) запрос с проверкой, если mysql_field_count(&mysql) = 0. Это только случится, если кое-что пошло не так, как надо.

21.4.36 Mysql_num_rows ()

My_ulonglong mysql_num_rows (MYSQL_RES *result)

21.4.36.1 Описание

Возвращает число строк в наборе результатов.

Использование mysql_num_rows () зависит от того, используете ли Вы mysql_store_result () или mysql_use_result () чтобы возвратить набор результатов. Если Вы используете mysql_store_result (), mysql_num_rows () может называться немедленно. Если Вы используете mysql_use_result (), mysql_num_rows () не будет возвращать правильное значение, пока все строки в наборе результатов не были найдены.

21.4.36.2 Возвращаемые значения

Число строк в наборе результатов.

21.4.36.3 Ошибки

Ни один.

21.4.37 Mysql_options ()

Int mysql_options (MYSQL *mysql, перечисление mysql_option опция, символ константы *arg)

21.4.37.1 Описание

Может Использоваться, чтобы установить дополнительное пространство, соединяются(подключают) параметры и затрагивают поведение для подключения. Эта функция может называться множественными временами, чтобы установить несколько параметров.

Mysql_options () должен назваться после mysql_init () и прежде mysql_connect () или mysql_real_connect ().

Параметр опции - опция, которую Вы хотите установить; параметр параметра - значение для опции. Если опция - целое число, то параметр должен указать на значение целого числа.

Возможные значения параметров:

Опция Тип Параметра Функция
MYSQL_OPT_CONNECT_TIMEOUT Int без знака * Подключите блокировку времени мгновенно.
MYSQL_OPT_COMPRESS Не используемый Используйте сжатый протокол клиента / сервера.
MYSQL_OPT_NAMED_PIPE Не используемый Именованные каналы Использования, чтобы соединиться с MySQL сервером на NT.
MYSQL_INIT_COMMAND Символ * Команда, чтобы выполниться при соединении с MySQL сервером. Будет автоматически заново Выполнен при пересоединении.
MYSQL_READ_DEFAULT_FILE Символ * Читайте параметры от названного файла опции вместо от "my.cnf".
MYSQL_READ_DEFAULT_GROUP Символ * Читайте параметры от названной группы от "my.cnf" или файла, указанного с MYSQL_READ_DEFAULT_FILE.

Обратите внимание, что клиент группы всегда читается, если Вы используете MYSQL_READ_DEFAULT_FILE или MYSQL_READ_DEFAULT_GROUP.

Указанная группа в файле опции может содержать следующие параметры:

Сжать Используйте сжатый протокол клиента / сервера.
База данных Соединитесь с этой базой данных, если там никакая база данных не была определена в подключенной команде
Отладка Параметры Отладки
Главный компьютер Заданное по умолчанию имя хоста
Init-команда Команда, чтобы выполниться при соединении с MySQL сервером. Будет автоматически заново Выполнен при пересоединении.
Пароль Заданный по умолчанию пароль
Канал Именованные каналы Использования, чтобы соединиться с MySQL сервером на NT.
Порт Заданный по умолчанию портовый номер
Return-found-rows Сообщите mysql_info () возвращаться найденный строками вместо модифицированных строк при использовании МОДИФИКАЦИИ.
Разъем Заданный по умолчанию номер разъема
Блокировка времени Подключите блокировку времени мгновенно.
Пользователь Гипотетический пользователь

Для получения дополнительной информации относительно файлов опции, см. раздел 4.15.4 файла Опции.

21.4.37.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если Вы использовали неизвестную опцию.

21.4.37.3 Пример

 MYSQL mysql;mysql_init(&mysql);mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");if (! mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) {fprintf (stderr, " Не сумел соединяться с базой данных: Ошибка: %s\n ", mysql_error(&mysql));} 

Вышеупомянутые запросы клиент, чтобы использовать сжатый протокол клиента / сервера и читают дополнительные параметры от odbc раздела в my.cnf файле.

21.4.38 Mysql_ping ()

Int mysql_ping (MYSQL *mysql)

21.4.38.1 Описание

Проверяет(отмечает), действительно ли подключение к серверу работает. Если это понизилось, автоматическое переподключение предпринято.

Эта функция может использоваться клиентурой, которая остается простоем для долго, проверять(отмечать), действительно ли сервер закрыл подключение и повторно соединяется в случае необходимости.

21.4.38.2 Возвращаемые значения

Нуль, если сервер действующий(жив). Ненулевое, если ошибка произошла.

21.4.38.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.39 Mysql_query ()

Int mysql_query (MYSQL *mysql, символ константы *query)

21.4.39.1 Описание

Выполняет запрос SQL, указанный запросом строки с нулевым символом в конце. Запрос должен состоять из одиночной инструкции SQL. Вы не должны добавить заканчивающуюся точку с запятой (";") или \g к инструкции.

Mysql_query () не может использоваться для запросов, которые содержат данные в двоичном коде; Вы должны использовать mysql_real_query () вместо этого. (Данные в двоичном коде могут содержать "\0" символа, который mysql_query () интерпретируется как конец строки запроса.)

21.4.39.2 Возвращаемые значения

Нуль, если запрос был успешен. Ненулевое, если ошибка произошла.

21.4.39.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.40 Mysql_real_connect ()

MYSQL *mysql_real_connect (MYSQL *mysql, символ константы *host, символ константы *user, символ константы *passwd, символ константы *db, int порт без знака, символ константы *unix_socket, int без знака client_flag)

21.4.40.1 Описание

Mysql_real_connect () пытается устанавливать подключение к MySQL двигателю базы данных, выполняющему на главном компьютере. Mysql_real_connect () должен завершить успешно прежде, чем Вы можете выполнять любую из других функций API, за исключением mysql_get_client_info ().

Параметры определены следующим образом:

21.4.40.2 Возвращаемые значения

MYSQL* подключение обработало бы, если подключение было успешно. ПУСТОЙ УКАЗАТЕЛЬ, если подключение было неудачно. Для успешного подключения, возвращаемое значение - тот же самый как значение первого параметра, если Вы не передаете ПУСТОЙ УКАЗАТЕЛЬ для того параметра.

21.4.40.3 Ошибки

CR_CONN_HOST_ERROR
Неудавшийся соединяться с MySQL сервером.
CR_CONNECTION_ERROR
Неудавшийся соединяться с локальным MySQL сервером.
CR_IPSOCK_ERROR
Неудавшийся создавать IP разъем.
CR_OUT_OF_MEMORY
Недостаточно памяти.
CR_SOCKET_CREATE_ERROR
Неудавшийся создавать Unix разъем.
CR_UNKNOWN_HOST
Неудавшийся находить АДРЕС IP для имени хоста.
CR_VERSION_ERROR
Несоответствие протоколов, из которого следуют, делая попытку соединяться с сервером с библиотекой клиентов, которая использует различную версию протокола. Это может случаться, если Вы используете очень старую библиотеку клиентов, чтобы соединиться с новым сервером, который не был начат с - опция с старым протоколом.
CR_NAMEDPIPEOPEN_ERROR;
Неудавшийся создавать именованный канал на Win32.
CR_NAMEDPIPEWAIT_ERROR;
Неудавшийся ждать именованный канал на Win32.
CR_NAMEDPIPESETSTATE_ERROR;
Неудавшийся получить обработчик канала на Win32.

21.4.40.4 Пример

 MYSQL mysql;mysql_init(&mysql);if (! mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) {fprintf (stderr, " Не сумел соединяться с базой данных: Ошибка: %s\n ", mysql_error(&mysql));} 

21.4.41 Mysql_real_query ()

Int mysql_real_query (MYSQL *mysql, символ константы *query, int длина без знака)

21.4.41.1 Описание

Выполняет запрос SQL, указанный запросом, который должен быть байты длины строки долго. Запрос должен состоять из одиночной инструкции SQL. Вы не должны добавить заканчивающуюся точку с запятой (";") или \g к инструкции.

Вы должны использовать mysql_real_query () скорее чем mysql_query () для запросов, которые содержат данные в двоичном коде, так как данные в двоичном коде могут содержать "\0" символа. Кроме того, mysql_real_query () быстрее чем mysql_query () так как это не вызывает(называет) strlen () на строке запроса.

21.4.41.2 Возвращаемые значения

Нуль, если запрос был успешен. Ненулевое, если ошибка произошла.

21.4.41.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.42 Mysql_reload ()

Int mysql_reload (MYSQL *mysql)

21.4.42.1 Описание

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

Эта функция осуждается. Предпочтительно использовать mysql_query () чтобы выпустить инструкцию SQL FLUSH PRIVILEGES вместо этого.

21.4.42.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если ошибка произошла.

21.4.42.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.43 Mysql_row_seek ()

MYSQL_ROW_OFFSET mysql_row_seek (MYSQL_RES *result, MYSQL_ROW_OFFSET смещение)

21.4.43.1 Описание

Устанавливает курсор строки к произвольной строке в наборе результатов запросов. Это требует, чтобы структура набора результата содержала полный результат запроса, так что mysql_row_seek () может использоваться в конъюнкции только с mysql_store_result (), не с mysql_use_result ().

Смещение должно быть значение, возвращенное от запроса до mysql_row_tell () или к mysql_row_seek (). Это значение не просто номер строки; если Вы хотите искать на строку в пределах набора результатов, используя номер строки, используйте mysql_data_seek () вместо этого.

21.4.43.2 Возвращаемые значения

Предыдущее значение курсора строки. Это значение можно пропускать к последующему запросу к mysql_row_seek ().

21.4.43.3 Ошибки

Ни один.

21.4.44 Mysql_row_tell ()

MYSQL_ROW_OFFSET mysql_row_tell (MYSQL_RES *result)

21.4.44.1 Описание

Возвращает текущую позицию курсора строки для последнего(прошлого) mysql_fetch_row (). Это значение может использоваться как параметр к mysql_row_seek ().

Вы должны использовать mysql_row_tell () только после mysql_store_result (), не после mysql_use_result ().

21.4.44.2 Возвращаемые значения

Смещение тока(потока) курсора строки.

21.4.44.3 Ошибки

Ни один.

21.4.45 Mysql_select_db ()

Int mysql_select_db (MYSQL *mysql, символ константы *db)

21.4.45.1 Описание

Заставляет базу данных, указанную db стать заданной по умолчанию (текущей) базой данных на подключении, указанном mysql. В последующих запросах, эта база данных - значение по умолчанию для ссылок(справочников) таблицы, которые не включают явный спецификатор базы данных.

Mysql_select_db () терпит неудачу, если связанный пользователь не может быть заверен как наличие разрешения использовать базу данных.

21.4.45.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если ошибка произошла.

21.4.45.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.46 Mysql_shutdown ()

Int mysql_shutdown (MYSQL *mysql)

21.4.46.1 Описание

Спрашивает сервер базы данных на завершение. Связанный пользователь должен иметь привилегии завершения.

21.4.46.2 Возвращаемые значения

Нуль для успеха. Ненулевое, если ошибка произошла.

21.4.46.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.47 Mysql_stat ()

Символ *mysql_stat (MYSQL *mysql)

21.4.47.1 Описание

Возвращает символьную строку, содержащую информацию, подобную обеспеченному mysqladmin командой состояния. Это включает полезное время мгновенно и число выполняющихся тематик, вопросов, перезагрузок и открытых таблиц.

21.4.47.2 Возвращаемые значения

Символьная строка, описывающая состояние сервера. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.47.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.48 Mysql_store_result ()

MYSQL_RES *mysql_store_result (MYSQL *mysql)

21.4.48.1 Описание

Вы должны вызвать(назвать) mysql_store_result () или mysql_use_result () для каждого запроса, который успешно отыскивает данные (ВЫБОР, ПОКАЗ, ОПИШИТЕ, ОБЪЯСНИТЕ).

Mysql_store_result () читает полный результат запроса клиенту, распределяет структуру MYSQL_RES, и размещает результат в эту структуру.

Пустой набор результатов возвращен, если не имеется никаких возвращенных строк. (Пустой набор результатов отличается от НУЛЕВОГО(ПУСТОГО) возвращаемого значения.)

Как только Вы назвали mysql_store_result (), Вы можете вызывать(называть) mysql_num_rows () чтобы выяснить, сколько строк находятся в наборе результатов.

Вы можете вызывать(называть) mysql_fetch_row () чтобы выбрать строки от набора результатов, или mysql_row_seek () и mysql_row_tell () чтобы получить или установить текущую позицию строки в пределах набора результатов.

Вы должны вызвать(назвать) mysql_free_result () как только Вы сделаны с набором результатов.

См. раздел 21.4.51, почему - это, что после mysql_query () успех возвращений, mysql_store_result () иногда возвращает ПУСТОЙ УКАЗАТЕЛЬ?.

21.4.48.2 Возвращаемые значения

MYSQL_RES кончаются структура с результатами. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.48.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_OUT_OF_MEMORY
Недостаточно памяти.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.49 Mysql_thread_id ()

Длинный mysql_thread_id без знака (MYSQL *mysql)

21.4.49.1 Описание

Возвращает тематику ИДЕНТИФИКАТОР текущего подключения. Это значение может использоваться как параметр к mysql_kill () чтобы уничтожить тематику.

Если подключение потеряно, и Вы повторно соединяетесь с mysql_ping (), тематика, ИДЕНТИФИКАТОР изменится. Это означает, что Вы не должны получить тематику ИДЕНТИФИКАТОР и хранить это для позже, Вы должны получить это, когда Вы нуждаетесь в этом.

21.4.49.2 Возвращаемые значения

Тематика ИДЕНТИФИКАТОР текущего подключения.

21.4.49.3 Ошибки

Ни один.

21.4.50 Mysql_use_result ()

MYSQL_RES *mysql_use_result (MYSQL *mysql)

21.4.50.1 Описание

Вы должны вызвать(назвать) mysql_store_result () или mysql_use_result () для каждого запроса, который успешно отыскивает данные (ВЫБОР, ПОКАЗ, ОПИШИТЕ, ОБЪЯСНИТЕ).

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 не возвращено, иначе невыбранные строки будут возвращены как часть набора результатов для вашего следующего запроса. API C даст Команды ошибки из синхронизации; Вы не можете выполнять эту команду теперь, если Вы забываете делать это!

Вы не можете использовать 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 () как только Вы сделаны с набором результатов.

21.4.50.2 Возвращаемые значения

MYSQL_RES кончаются структура. ПУСТОЙ УКАЗАТЕЛЬ, если ошибка произошла.

21.4.50.3 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в неподходящем порядке.
CR_OUT_OF_MEMORY
Недостаточно памяти.
CR_SERVER_GONE_ERROR
MySQL сервер ушел.
CR_SERVER_LOST
Подключение к серверу было потеряно в течение запроса.
CR_UNKNOWN_ERROR
Неизвестная ошибка произошла.

21.4.51 Почему - это, что после mysql_query () успех возвращений, mysql_store_result () иногда возвращает ПУСТОЙ УКАЗАТЕЛЬ?

Это возможно для mysql_store_result () чтобы возвратить ПУСТОЙ УКАЗАТЕЛЬ после успешного запроса к mysql_query (). Когда это случается, это означает, что одно из следующих условий(состояний) произошло:

Вы можете всегда проверять(отмечать), действительно ли инструкция должна была произвести не-пустой результат, вызывая mysql_field_count (). Если mysql_field_count () нуль возвращений, результат пуст, и последний(прошлый) запрос был инструкция, которая делает не возвращаемые значения (например, ВСТАВКУ или УДАЛЯЮЩИЙСЯ). Если mysql_field_count () возвращает ненулевое значение, инструкция должна была произвести не-пустой результат. См. описание mysql_field_count () функция для примера.

Вы можете проверять на ошибку, вызывая mysql_error () или mysql_errno ().

21.4.52 Какие результаты я могу добраться от запроса?

В дополнение к результату устанавливают возвращенный запросом, Вы можете также получить следующую информацию:

21.4.53 Как я могу получить уникальный ИДЕНТИФИКАТОР для последней(прошлой) вставленной строки?

Если Вы вставляете отчет(рекорд) в таблице, содержащей столбец, который имеет атрибут AUTO_INCREMENT, Вы можете получить наиболее недавно сгенерированный ИДЕНТИФИКАТОР, вызывая mysql_insert_id () функция.

Вы можете также отыскивать ИДЕНТИФИКАТОР, используя LAST_INSERT_ID () функция в строке запроса, которую Вы проходите к mysql_query ().

Вы можете проверять(отмечать), используется ли индекс AUTO_INCREMENT, выполняя следующий код. Это также проверяет(отмечает), был ли запрос ВСТАВКА с индексом AUTO_INCREMENT:

 Если (mysql_error(&mysql)[0] == 0 && Mysql_num_fields (результат) == 0 && mysql_insert_id(&mysql)! = 0) {used_id = mysql_insert_id(&mysql);} 

Наиболее недавно сгенерированный ИДЕНТИФИКАТОР поддерживается в сервере на основании " в связь ". Это не будет изменено(заменено) другим клиентом. Это не будет даже изменено(заменено), если Вы обновляете(модифицируете) другой столбец AUTO_INCREMENT с не-волшебным значением (то есть значение, которое - не ПУСТОЙ УКАЗАТЕЛЬ и не 0).

Если Вы хотите использовать ИДЕНТИФИКАТОР, который был сгенерирован для одной таблицы и вставлять это во вторую таблицу, Вы можете использовать инструкции SQL подобно этому:

 ВСТАВЬТЕ В foo (авто, текстовый) ЗНАЧЕНИЯ (ПУСТОЙ УКАЗАТЕЛЬ, 'текст'); # Генерировать ИДЕНТИФИКАТОР,  вставляя NULLINSERT В foo2 (идентификатор, текст) ЗНАЧЕНИЯ (LAST_INSERT_ID (), 'текст'); # Использовать ИДЕНТИФИКАТОР во второй таблице

21.4.54 Проблемы при соединении с API C

При соединении с API C, следующие ошибки могут происходить на некоторых системах:

 Gcc -g -o клиент test.o -L/usr/local/lib/mysql -lmysqlclient -lsocket -lnslUndefined сначала упомянутый символ в filefloor /usr/local/lib/mysql/libmysqlclient.a(password.o)ld: фатальный: Символ, ссылающийся на ошибки. Никакой вывод, записанный в клиент

Если это случается на вашей системе, Вы должны включить математическую библиотеку, добавляя -lm к концу компилирующейся / связанной строки.

21.4.55 Как делать безопасного по тематике клиента

Клиент " " почти " безопасен по тематике. Самая большая проблема состоит в том, что подпрограммы в " net.c ', которые читают от разъемов, не безопасны по прерыванию. Это было сделано с мыслью, что Вы могли бы хотеть иметь вашу собственную тревогу, которая может ломать(нарушать) длинное чтение на сервер.

Стандартные библиотеки клиента не откомпилированы с параметрами тематики.

Чтобы получить безопасного по тематике клиента, используйте -lmysys, -lstring и -ldbug библиотеки и net_serv.o, который сервер использует.

При использовании связного клиента, Вы можете делать большое использование из подпрограмм в "thr_alarm.c" файле. Если Вы используете подпрограммы от mysys библиотеки, единственная вещь Вы должны помнить, должен вызвать(назвать) my_init () сначала!

Все функции кроме mysql_real_connect () в настоящее время безопасны по тематике. Следующие примечания описывают, как компилировать безопасную по тематике библиотеку клиентов и использовать это безопасным по тематике способом. (Примечания ниже для mysql_real_connect () фактически обращаются к mysql_connect () также, но так как mysql_connect () осуждается, Вы должны использовать mysql_real_connect () так или иначе.)

Чтобы делать mysql_real_connect () безопасным по тематике, Вы должны перетранслировать библиотеку клиентов с этой командой:

 Оболочка > CPPFLAGS =-DTHREAD_SAFE_CLIENT ./configure ...

Вы можете получить некоторые ошибки из-за неопределенных символов при соединении стандартного клиента, потому что pthread библиотеки не включены по умолчанию.

Заканчивающаяся "libmysqlclient.a" библиотека теперь безопасна по тематике. Что это означает - тот код клиента, безопасен по тематике, целых две тематики не сделают запрос того же самого маркера(дескриптора) подключения, возвращенного mysql_real_connect () в то же самое время; протокол клиента / сервера позволяет только один запрос одновременно на данном подключении. Если Вы хотите использовать множественные тематики на том же самом подключении, Вы должны иметь блокировку mutex вокруг вашего mysql_query () и mysql_store_result () вызывают(называют) комбинацию. Однажды mysql_store_result () готов, блокировка может быть выпущена, и другие тематики могут сделать запрос того же самого подключения. (Другими словами, различные тематики могут использовать различные указатели MYSQL_RES, которые были созданы с mysql_store_result (), пока они используют надлежащий протокол блокировки.) Если Вы программа с POSIX тематиками, Вы можете использовать pthread_mutex_lock () и pthread_mutex_unlock () чтобы устанавливать и выпустить блокировку mutex.

Если бы Вы использовали mysql_use_result () скорее чем mysql_store_result (), блокировка была бы должна окружить mysql_use_result () и запросы к mysql_fetch_row (). Однако, это действительно лучше для связной клиентуры, чтобы не использовать mysql_use_result ().

21.5 MySQL Perl API

Этот раздел документирует Perl DBI интерфейс. Прежний интерфейс назывался mysqlperl. С тех пор DBI/DBD теперь - рекомендуемый интерфейс Perl, mysqlperl устаревший и не зарегистрирован здесь.

21.5.1 DBI с DBD:: mysql

DBI - универсальный интерфейс для многих баз данных. Это означает, что Вы можете записывать сценарий, который работает с многими различными двигателями базы данных без изменения(замены). Вы нуждаетесь в Драйвере Базы данных (DBD) определенный для каждого типа базы данных. Для MySQL, этот драйвер называется DBD:: mysql.

Для получения дополнительной информации на Perl5 DBI, пожалуйста посетите DBI страницу сети, и читайте документацию:

  http://www.symbolstone.org/technology/perl/DBI/index.html 

Для получения дополнительной информации на Объектно-ориентированном Программировании (OOP) как определено в Perl5, см. Perl OOP страница:

  http://language.perl.com/info/documentation.html 

Инсталляционные команды для MySQL Perl поддержка даются в разделе 4.10 комментария инсталляции Perl.

21.5.2 Интерфейс DBI

Переносные DBI методы

Соединитесь Устанавливает подключение к серверу базы данных
Разъединить Разъединяет от сервера базы данных
Готовьтесь Готовит инструкцию SQL для выполнения
Выполниться Выполняет подготовленные инструкции
Делать Готовит и выполняет инструкцию SQL
Кавычка Цитирует строку или значения BLOB, которые будут вставлены
Fetchrow_array Выбирает следующую строку как массив полей.
Fetchrow_arrayref Выбирает следующую строку как массив ссылки(справочников) полей
Fetchrow_hashref Выбирает следующую строку как ссылка(справочники) к hashtable
Fetchall_arrayref Выбирает все данные как массив массивов
Конец Заканчивает инструкцию и позволять системным свободным ресурсам
Строки Возвращает число строк, на которые воздействуют
Data_sources Возвращает массив баз данных, доступных на localhost
ChopBlanks Управляет, урезают ли fetchrow_* методы места(космоса)
NUM_OF_PARAMS Число меток - заполнителей в подготовленной инструкции
NULLABLE Который столбцы могут быть НУЛЕВЫЕ(ПУСТЫЕ)
След Исполните рассмотрение для отладки

MySQL-определенные методы

Insertid Самое последнее значение AUTO_INCREMENT
Is_blob Который столбец является значениями BLOB
Is_key Который столбцы являются клавишами(ключами)
Is_num Который столбцы являются числовыми
Is_pri_key Который столбцы являются первичными клавишами(ключами)
Is_not_null Который столбцы CANNOT, быть НУЛЕВОЙ(ПУСТОЙ). См. NULLABLE.
Длина Максимальные возможные размеры столбца
Max_length Максимальные размеры столбца фактически представляют в результате
НАЗВАНИЕ(ИМЯ) Названия(имена) Столбца
NUM_OF_FIELDS Число полей возвратился
Таблица Таблица называет в возвращенном наборе
Тип Все типы столбца

Perl методы описаны более подробно в следующих разделах. Переменные, используемые для возвращаемых значений метода имеют эти значения:

$dbh
Маркер(дескриптор) Базы данных
$sth
Операторный маркер(дескриптор)
$rc
Код возврата (часто состояние)
$rv
Возвращаемое значение (часто индекс строки)

Переносные DBI методы

Соединитесь ($data_source, $username, $password)
Использование подключенный метод делать подключение базы данных к источнику данных. $data_source значение должно начаться с DBI:DRIVER_NAME:. Использования Примера подключают с DBD:: mysql драйвер:
 $dbh = DBI- > соединяются ("DBI:mysql:$database", $user, $password); $dbh = DBI->connect("DBI:mysql:$database:$hostname ", $user, $password); $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port ", $user, $password);
Если пользователь называет, и-или пароль неопределен, DBI использует значения DBI_USER и DBI_PASS переменных среды, соответственно. Если Вы не определяете имя хоста, это значения по умолчанию к 'localhost'. Если Вы не определяете портовый номер, это значения по умолчанию к значению по умолчанию MySQL порт (3306). От Msql-Mysql-modules версии 1.2009, $data_source значение позволяет некоторые модификаторы:
Mysql_read_default_file=file_name
Читайте "имя файла" как файл опции. Для информации относительно файлов опции, см. раздел 4.15.4 файла Опции.
Mysql_read_default_group=group_name
Заданная по умолчанию группа при чтении файла опции - обычно группа [клиентов]. Определяя mysql_read_default_group опцию, заданная по умолчанию группа становится [group_name] группой.
Mysql_compression=1
Использование сжало связь между клиентом и сервером (MySQL 3.22.3 или позже).
Mysql_socket =/path/to/socket
Определите имя пути Unix разъема, который используется, чтобы соединиться с сервером (MySQL 3.21.15 или позже).
Множественные модификаторы можно давать; каждому нужно предшествовать точкой с запятой. Например, если Вы хотите избежать hardcoding название(имя) пользователя и пароль в сценарий DBI, Вы можете брать их от пользователя " ~ /.my.cnf ' файл опции вместо этого, пишущий ваш, чтобы соединиться(подключить) запрос подобно этому:
 $dbh = DBI- > соединяются ("DBI:mysql:$database". "; mysql_read_default_file=$ENV{HOME}/.my.cnf ", $user, $password);
Этот запрос будет читать параметры, определенные для группы [клиентов] в файле опции. Если Вы хотели делать ту же самую вещь, но параметры использования, указанные для [perl] группы также, Вы могли использовать это:
 $dbh = DBI- > соединяются ("DBI:mysql:$database". "; mysql_read_default_file=$ENV{HOME}/.my.cnf ". "; mysql_read_default_group=perl ", $user, $password);
Разъединить
Разъединяющийся метод разъединяет маркер(дескриптор) базы данных от базы данных. Это типично называется правом прежде, чем Вы выходите от программы. Пример:
 $rc = $dbh- > разъединяют;
Готовьтесь ($statement)
Готовит инструкцию SQL для выполнения двигателем базы данных и возвращает операторный маркер(дескриптор) ($sth), который Вы можете использовать, чтобы вызвать выполняющийся метод. Типично Вы обрабатываете инструкции SELECT (и инструкции SELECT-like типа ПОКАЗА, ОПИСЫВАЕТЕ и ОБЪЯСНЯЕТЕ) посредством, готовят и выполняются. Пример:
 $sth = $dbh- > готовятся ($statement) или умирают " Не может готовиться $statement: $dbh- > errstr\n ";
Выполниться
Выполняющийся метод выполняет подготовленную инструкцию. Для инструкций не-выбора, выполните возвращения число строк, на которые воздействуют. Если на никакие строки не воздействуют, выполните возвращения "0E0", который Perl обрабатывает как нуль, но расценивает как истина. Для инструкций SELECT, выполните только запуски запрос SQL в базе данных; Вы должны использовать один из fetch_* методов, описанных ниже, чтобы отыскать данные. Пример:
 $rv = $sth- > выполняются или умирают " не может выполнять запрос: $sth- > errstr;
Делайте ($statement)
Метод готовит и выполняет инструкцию SQL и возвращает число строк, на которые воздействуют. Если на никакие строки не воздействуют, делайте возвращения "0E0", который Perl обрабатывает как нуль, но расценивает как истина. Этот метод вообще используется для инструкций не-выбора, которые не могут быть подготовлены заранее (из-за ограничений драйвера) или которые не нуждаются к выполненным больше чем однажды (вставки, удаляет, и т.д.). Пример:
 $rv = $dbh- > делают ($statement) или умирают " Не может выполняться $statement: $dbh- > errstr\n ";
Кавычка ($string)
Метод кавычки используется, чтобы "выйти" любых специальных символов, содержащихся в строке и добавлять требуемые внешние кавычки. Пример:
 $sql = $dbh- > кавычка ($string)
Fetchrow_array
Этот метод выбирает следующую строку данных и возвращает это как массив полевых значений. Пример:
 В то время как (@row = $sth- > fetchrow_array) {печатают qw ($row [0] \t$row [1] \t$row [2] \n);}
Fetchrow_arrayref
Этот метод выбирает следующую строку данных и возвращает это как ссылка(справочники) к массиву полевых значений. Пример:
 В то время как ($row_ref = $sth- > fetchrow_arrayref) {печатают qw($row_ref->[0]\t$row_ref->[1]\t$row_ref->[2]\n);} 
Fetchrow_hashref
Этот метод выбирает строку данных и возвращает ссылку(справочники) хеш-таблице, содержащей пары значения имени поля. Этот метод не почти столь же эффективен как использование ссылок(справочников) массива как демонстрируется выше. Пример:
 В то время как ($hash_ref = $sth- > fetchrow_hashref) {печатают qw($hash_ref->{firstname}\t$hash_ref->{lastname}\t\ $hash_ref- > заголовок} \n);}
Fetchall_arrayref
Этот метод используется, чтобы заставить все данные (строки) быть возвращенным от инструкции SQL. Это возвращает ссылку(справочники) массиву ссылок(справочников) к массивам для каждой строки. Вы обращаетесь или печатаете данные, используя вложенный цикл. Пример:
 Мой $table = $sth- > fetchall_arrayref или умирают " $sth- > errstr\n "; мой ($i, $j); для $i (0 .. $#{$table}) {для $j (0 .. $#{$table->[$i]}) {печатают " $table- > [$i] [$j] \t ";} печатают "\n";}
Конец
Указывает, что не больше данных будет выбран от этого операторного маркера(дескриптора). Вы вызываете(называете) этот метод освободить операторный маркер(дескриптор) и любые системные ресурсы, связанные с этим. Пример:
 $rc = $sth- > конец;
Строки
Возвращает число измененных(замененных) строк (модифицированный, удаленный, и т.д.) последней(прошлой) командой. Это обычно используется после того, как не-выбор выполняет инструкцию. Пример:
 $rv = $sth- > строки;
NULLABLE
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ИСТИННО" указывает, что этот столбец может содержать значения NULL. Пример:
 $null_possible = $sth- > {NULLABLE};
NUM_OF_FIELDS
Этот атрибут указывает число полей, возвращенных ИНСТРУКЦИЕЙ SHOW FIELDS или выбором. Вы можете использовать это для проверки, возвратила ли инструкция результат: нулевое значение указывает инструкцию не-выбора подобно ВСТАВКЕ, УДАЛЯТЬ или МОДИФИКАЦИЮ. Пример:
 $nr_of_fields = $sth- > {NUM_OF_FIELDS};
Data_sources ($driver_name)
Этот метод возвращает массив, содержащий названия(имена) баз данных, доступных MySQL серверу на главном компьютере 'localhost'. Пример:
 @dbs = DBI- > data_sources ("mysql");
ChopBlanks
Этот атрибут определяет, прервут ли fetchrow_* методы продвижение и конечные пробелы от возвращенных значений. Пример:
 $sth- > {'ChopBlanks'} =1;
След ($trace_level)
След ($trace_level, $trace_filename)
Метод следа допускает или отключает рассмотрение. Когда вызвано как DBI метод класса, это воздействует на рассмотрение для всех маркеров(дескрипторов). Когда вызвано, как база данных или инструкция обрабатывает метод, это воздействует на рассмотрение для данного маркера(дескриптора) (и любые будущие дочерние записи маркера(дескриптора)). Установка от $trace_level до 2 обеспечивает детальную информацию следа. Установка от $trace_level до 0 отключает рассмотрение. Вывод Следа идет к стандартному выводу ошибки по умолчанию. Если $trace_filename определен, файл открыт в, добавляют в конец режим и выводят для всех прослеженных маркеров(дескрипторов), записан в тот файл. Пример:
 DBI- > след (2); # Проследить everythingDBI- > след (2, "/tmp/dbi.out"); # Проследить все к /tmp/dbi.out$dth- > след (2); # Проследить эту базу данных handle$sth- > след (2); # Проследить этот операторный маркер(дескриптор)
Вы можете также допускать рассмотрению DBI, устанавливая DBI_TRACE переменную среды. Установка этого к числовому значению эквивалентна запросу DBI- > (значение). Установка этого к имени пути эквивалентна запросу DBI- > (2, значение).

MySQL-определенные методы

Методы, показанные ниже MySQL-определенные и не часть DBI стандарта. Несколько из них теперь осуждаются: is_blob, is_key, is_num, is_pri_key, is_not_null, длина, max_length, и таблица. Где DBI-СТАНДАРТ альтернативы существуют, они отмечены ниже.

Insertid
Если Вы используете особенность AUTO_INCREMENT MySQL, новые авто-увеличенные значения будут сохранены здесь. Пример:
 $new_id = $sth- > {insertid};
Как альтернатива, Вы можете использовать $dbh- > {'mysql_insertid '}.
Is_blob
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ИСТИННО" указывает, что соответствующий столбец - БОЛЬШОЙ ДВОИЧНЫЙ ОБЪЕКТ. Пример:
 $keys = $sth- > {is_blob};
Is_key
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ИСТИННО" указывает, что соответствующий столбец - клавиша(ключ). Пример:
 $keys = $sth- > {is_key};
Is_num
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ИСТИННО" указывает, что соответствующий столбец содержит числовые значения. Пример:
 $nums = $sth- > {is_num};
Is_pri_key
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ИСТИННО" указывает, что соответствующий столбец - первичная клавиша(ключ). Пример:
 $pri_keys = $sth- > {is_pri_key};
Is_not_null
Возвращает ссылку(справочники) массиву булевых значений; для каждого элемента массива, значение "ЛОЖНО" указывает, что этот столбец может содержать значения NULL. Пример:
 $not_nulls = $sth- > {is_not_null};
Is_not_null осуждается; предпочтительно использовать атрибут NULLABLE (описанный выше), так как это - DBI стандарт.
Длина
Max_length
Каждый из этих методов возвращает ссылку(справочники) массиву размеров столбца. Массив длины указывает максимальные возможные размеры, что каждый столбец может быть (как объявлено в описании таблицы). Массив max_length указывает, что максимальные размеры фактически представляют в таблице результата. Пример:
 $lengths = $sth- > {длина}; $max_lengths = $sth- > {max_length};
НАЗВАНИЕ(ИМЯ)
Возвращает ссылку(справочники) массиву названий(имен) столбца. Пример:
 $names = $sth- > {НАЗЫВАЮТ};
Таблица
Возвращает ссылку(справочники) массиву названий(имен) таблицы. Пример:
 $tables = $sth- > {таблица};
Тип
Возвращает ссылку(справочники) массиву типов столбца. Пример:
 $types = $sth- > {тип};

21.5.3 Большее количество DBI/DBD информация

Вы можете использовать perldoc команду, чтобы получить подробную информацию относительно DBI.

 Perldoc DBIperldoc DBI:: FAQperldoc DBD:: mysql

Вы можете также использовать pod2man, pod2html, и т.д., инструментальные средства, чтобы перевести к другим форматам.

И конечно Вы можете находить самым последним DBI информацию в DBI странице сети:

  http://www.symbolstone.org/technology/perl/DBI/index.html 

21.6 MySQL Eiffel обертка

Каталог MySQL Contrib содержит Eiffel обертку, написанную Майклом Равицом.

Вы можете также находить это в: http://www.netpedia.net/hosting/newplayer/

21.7 MySQL связность Java (JDBC)

Имеются 2, поддержал JDBC драйверы для MySQL (twz и драйвер мм). Вы можете находить копию их в http://www.mysql.com/Contrib. Поскольку документация консультируется с любой JDBC документацией, и драйверы имеют документацию для MySQL определенных особенностей.

21.8 MySQL PHP API

PHP серверный, HTML внедренный язык созданий сценария, который может использоваться, чтобы создать динамические страницы сети. Это содержит поддержку для доступа к нескольким базам данных, включая MySQL. PHP может быть выполнена как отдельная программа, или откомпилирован как модуль для использования с Apache сервером сети.

Распределение и документация доступны в PHP website.

21.8.1 Общие(обычные) проблемы с MySQL и PHP

21.9 MySQL API C++

Два API доступен в каталоге MySQL Contrib.

21.10 MySQL API Питона

Каталог MySQL Contrib содержит интерфейс Питона, написанный Джозефом Скиннером.

Вы можете также использовать интерфейс Питона к iODBC, чтобы обратиться к MySQL серверу. MxODBC

21.11 MySQL API МУЛЬТИПЛЕКСОРА КАНАЛА СВЯЗИ

МУЛЬТИПЛЕКСОР КАНАЛА СВЯЗИ в binevolve. Каталог Contrib содержит интерфейс МУЛЬТИПЛЕКСОРА КАНАЛА СВЯЗИ, который основан на 1.50 msqltcl.


Идите к первому, предыдущему, затем, последний(прошлый) раздел, оглавление.