Справочник и примеры языка PHP


MySQL С API


Глава №19
Глава №19. Справочник С...
MySQL С API
MySQL С API MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляц...
Типы данных
Типы данных MYSQL Структура, представляющая соединение с сервером баз данных. Элементы структуры среди прочего содержат имя текущей базы данных и информацию о клиентском подключении. MYSQL_FI...
My sql_affected_ro ws
my sql_affected_ro ws my_ulonglong mysql_affected_rows(MYSQL*mysql) Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_n...
Пример
Пример /* Вставить запись в таблицу 'people' */ mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin', 16)"; num = fflysql_affected_rows(&mysql); /* Если...
Mysql_close
mysql_close void mysql_close(MYSQL*mysql) Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функц...
Пример
Пример mysql_close(&mysql); /* Теперь подключение должно быть завершено */...
Mysql_connect
mysql_connect MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd) Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предваритель...
Пример
Пример /* Создать подключение к локальному серверу MySQL, используя имя "bob" и пароль "mypass" */ MYSQL mysql; if(!mysql_connect(&mysql, "", "bob"...
Mysql_create_db
mysql_create_db int mysql_create_db(MYSQL*mysql, const char*db) Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое...
Пример
Пример /* Создать новую базу данных 'new_database' */ result = mysql_create_db(&mysql, "new_database");...
Mysql_data_seek
mysql_data_seek void mysql_data_seek(MYSQL_RES*res, unsigned int offset) Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая сод...
Пример
Пример /* Перейти к последней записи в результате */ mysql_data_seek(results, mysql_num_rows(results)-1);...
Mysql_debug
mysql_debug mysql_debug(char *debug) Управляет отладочными функциями, если при компиляции клиента была разрешена отладка. MySQL использует отладочную библиотеку Fred Fish, которая имеет слишк...
Пример
Пример /* Это обычное использование отладочной библиотеки. Информация о деятельности клиентских программ записывается в файл "debug.out"*/ mysql_debug("d:t:0, debug. out")...
Mysql_drop_db
mysql_drop_db int mysql_drop_clb(MYSQL*mysql, const char*db) Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случа...
Пример
Пример /* Уничтожить базу данных 'old_database' */ result = mysql_drop_db(&mysql, "old_database");...
Mysql_dump_debug_info
mysql_dump_debug_info int mysql_dump_debug_info(MYSQL*mysql) Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для исполь...
Пример
Пример result = mysql_dump_debug_info(&mysql); /* Теперь журналы сервера должны содержать информацию о текущем подключении */...
Mysql_eof
mysql_eof my_bool mysql_eof(MYSQL_RES* result) Возвращает ненулевое значение, если больше нет данных в проверяемом наборе записей. При обнаружении ошибки в результирующем наборе возвращается...
Пример
Пример /* Прочитать до конца набор записей */ while((row = mysql_fetch_row( results.))) { /'Обработка 7 } if(!mysql_eof(results)) { printf("Ошибка. Конец результата не достигнут.\n&qu...
Mysql_errno
mysql_errno unsigned int mysql_errno(MYSQL*mysql) Возвращает номер последней ошибки, связанной с текущим подключением. Если подключение прошло без ошибок, функция возвращает ноль....
Пример
Пример error = mysql_errno(&mysql); printf("HoMep последней ошибки: %d\n", error);...
Mysql_error
mysql_error char *mysql_error(MYSQL*mysql) Возвращает сообщение о последней ошибке, связанной с текущим подключением. Если при подключении не было ошибок, функция возвращает пустую строку....
Пример
Пример printf("Последняя ошибка была: '%s'\n", mysql_error(&mysql));...
Mysq l_esca pe_strin g
mysq l_esca pe_strin g unsigned int mysql_escape_string(char*to, const char "from, unsigned int length) unsigned int mysql_escape_string(char*to, const char *from) Кодирует строку так...
Пример
Пример char name[15] = "Bob Marley's"; char enc_name[31]; mysql_escape_string(enc_name, name); /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка зак...
Mysql_fetch_field
mysql_fetch_field MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result) Возвращает структуру MYSQL_FIELD, описывающую доле заданного результирующего набора. Дальнейшие вызовы этой функции вернут и...
Пример
Пример MYSQL_FIELD*field; while((field = mysql_fetch_field(results))) { /* Здесь вы можете проверить информацию о поле */ }...
Mysql_fetch_field_direct
mysql_fetch_field_direct MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr) Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям...
Пример
Пример MYSQL_FIELD *field; /* Получить информацию о третьем поле в наборе записей */ field = mysql_fetch_field_direct(results, 2);...
Mysql_fetch_fields
mysql_fetch_fields MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result) Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих инфор...
Пример
Пример MYSQL_FIELD 'field; MYSQL_FIELD 'fields; /* Получить всю информацию о полях в наборе записей */ fields = mysql_fetch_fields(results); /* Приписать третье поле переменной 'field' */ fi...
Mysql_fetch_lengths
mysql_fetch_lengths unsigned long *mysql_fetch_lengths(MYSQL_RES*result) Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны в...
Пример
Пример unsigned long *lengths; row = mysql_fetch_row(results); lengths = mysql_fetch_lengths(results); printf("Tpetbe поле имеет длину %d байт\n", lengths[2]);...
Mysql_fetch_row
mysql_fetch_row MYSQL_ROW mysql_fetch_row(MYSQL_RESresult) Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращаетс...
Пример
Пример MYSQL_ROW row; row = mysql_fetch_row(results); printf("Данные в третьем поле этой записи: %s\n", row[2]);...
Mysql_field_seek
mysql_field_seek MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset) Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функ...
Пример
Пример MYSQL_FIELD field; /* Перейти к началу записи */ old_pos = mysql_field_seek(results, 0); /* Выбрать первое поле записи */ field = mysql_field_field(results); /* Вернуться к исходному...
Mysql_field_tell
mysql_field_tell MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult) Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f iel...
Пример
Пример MYSQL_FIELD fieldl, field2, fieldS; /* Запомнить текущую позицию */ old_pos = mysql_field_tell(results); /* Выбрать еще три поля */ field1 = mysqLfield_field(results); field2 = mysql...
Mysql_free_result
mysql_free_result void mysql_free_result(MYSQL_RESresult) Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры эт...
Пример
Пример MYSQL_RES "results; /* Выполнить операции с результатами */ mysql_free_result(results);...
Mysql_get_client_info
mysql_get_client_info char *mysql_get_client_info(void) Возвращает строку с версией библиотеки MySQL, используемой клиентской программой....
Пример
Пример printf("Этa программа использует клиентскую библиотеку MySQL версии %s\n", mysql_get_client_info()));...
Mysql_get_host_jnfo
mysql_get_host_jnfo char *mysql_get_host_info(MYSQL*mysql) Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP)....
Пример
Пример print("Информация о подключении: %s", mysql_get_host_info(&mysql));...
Mysq l_get_proto_i nf о
mysq l_get_proto_i nf о unsigned int mysql_get_proto_info(MYSQtmysql) Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении....
Пример
Пример printf("Этo подключение использует протокол соединений MySQL версии %d\n", mysql_get_proto_info());...
Mysql_get_server_info
mysql_get_server_info char *mysql_get_server_info(MYSQL*mysql) Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении....
Пример
Пример printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);...
Mysqljnfo
mysqljnfo char *mysql_info(MYSQL*mysql) Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию...
Пример
Пример /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql)...
Mysql_init
mysql_init MYSQL *mysql_init(MYSQL*mysql) Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом и...
Пример
Пример MYSQL mysql; if (!mysql_init(&mysql)) { printf("Ошибка инициализации клиента MySQL\n"); exit(1); }...
Mysqljnsertjd
mysqljnsertjd my_ulonglong mysql_insert_id(MYSQL*mysql) Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле A...
Пример
Пример /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в таблицу */ id = mysql_insert_id(&mysql); printf(''Новый сотрудник получил ID %d\n", id);...
Mysql_kill
mysql_kill int mysql_kill(MYSQL*mysql, unsigned long pid) Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения опера...
Пример
Пример /* Завершить поток с номером 4 */ result = mysql_kill(&mysql, 4);...
Mysql_list_dbs
mysql_list_dbs MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild) Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во в...
Пример
Пример MYSQL_RES databases; databases = mysql_list_dbs(&mysql, (char*)MULL); /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */...
Mysql_list_fields
mysql_list_fields MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild) Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, к...
Пример
Пример MYSQL_RES fields; fields = mysql_list_fields(&mysql, "people", "address%"); /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'addr...
Mysql_list_processes
mysql_list_processes MYSQL_RES*mysql_list_processes(MYSQL*mysql) Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта инфор...
Пример
Пример MYSQL_RES threads; threads = mysql_list_processes(&mysql);...
Mysql_list_tables
mysql_list_tables MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild) Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают в...
Пример
Пример MYSQL_RES tables; tables = mysql_list_tables(&mysql, "p%"); /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */...
Mysql_num_fields
mysql_num_fields unsigned int mysql_num_fields(MYSQL_RESresult) Возвращает число полей, содержащееся в каждой записи указанного результирующего набора....
Пример
Пример num_fields = mysql_num_fields(results); printf("There are %d fields in each row\n", num_fields);...
Mysql_num_rows
mysql_num_rows int mysqi_num_rows(MYSQL_RESresult) Эта функция вернет количество записей в возвращаемом наборе записей. Работает корректно, только если набор был получен функцией mysql_store_r...
Пример
Пример num_rows = mysql_num_rows(results); printf("Было возвращено %d записей \n", num_rows);...
Mysql_ping
mysql_ping int mysql_ping(MYSQL*mysql) Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль,...
Пример
Пример while(mysql_ping(&mysql)) printf("Ошибка, попытка повторного подключения...\n");...
Mysql_query
mysql_query int mysql_query(MYSQL*mysql, const char"query) Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), э...
Пример
Пример error = mysql_query(&mysql, "SELECT FROM people WHERE name like 'Bill%'"); if (error) { printf("Ошибка при выполнении запроса!\n"); exit(1); }...
Mysql_real_connect
mysql_real_connect MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user, const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag) Создает со...
Пример
Пример /* Подключиться к серверу на локальном хосте, используя стандартные параметры. */ if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "...
Mysql_real_query
mysql_real_query int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length) Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запро...
Пример
Пример error = mysql_real_query(&ntysql, "SELECT FROM people WHERE name like Bill%'", 44); if (error) { printf("Ошибка при выполнении запроса!\n"); exit(1); }...
Mysql_reload
mysql_reload int mysql_reload(MYSQL*mysql) Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Фун...
Пример
Пример result = mysql_reload(&mysql);...
Mysql_row_tell
mysql_row_tell unsigned int mysql_row_tell(MYSQL_RESresult) Возвращает значение курсора, используемого функцией mysql_fetch_row при чтении записей из результирующего набора. Возвращаемое этой...
Пример
Пример saved_pos = mysql_row_tell(results); /* Теперь в любой момент я могу вернуться к этой записи */...
Mysql_select_db
mysql_select_db int mysql_select_db(MYSQL*mysql, const char*db) Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операц...
Пример
Пример result = mysql_select_db(&mysql, "newdb");...
Mysql_shutdown
mysql_shutdown int mysql_shutdown(MYSQL*mysql) Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возв...
Пример
Пример result = mysql_shutdown(&mysql);...
Mysql_stat
mysql_stat char *mysql_stat(MYSQL*mysql) Возвращает информацию о текущем статусе сервера баз данных. Среди прочей информации содержатся данные о времени работы, количестве запущенных потоков и...
Пример
Пример printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));...
Mysql_store_result
mysql_store_result MYSQL_RES *mysql_store_result(MYSQL*mysql) Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использов...
Пример
Пример MYSQL_RES results; mysql_query(&mysql, "SELECT* FROM people"); results = mysql_store_result(&mysql); /* 'results' теперь содержит всю информацию из таблицы'people*/...
Mysql_thread_id
mysql_thread_id unsigned long mysql_thread_id(MYSQL* mysql) Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки....
Пример
Пример thread_ld = mysql_thread_id(&mysql);...
Mysql_use_result
mysql_use_result MYSQL_RES*mysql_use_result(MYSQL*mysql) Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запрос...
Пример
Пример MYSQL_RES results; mysql_query(&mysql, "SELECT* FROM people"); results = mysql_store_result(&mysql); /* 'results' теперь позволяет получить доступ к данным таблицы (...
MSQLCAPI
mSQLCAPI API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существ...
Типы данных
Типы данных mSQL С API кроме стандартных типов данных языка С использует некоторые свои типы. Они определены в заголовочном файле 'msql.h', который необходимо подключать при компиляции всех пр...
MsqIConnect
msqIConnect int msqIConnect ( char*host ) Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к се...
Пример
Пример /* Создать подключение к серверу баз данных на локальном хосте*/ dbh = msqlConnect( (char*)NULL ); if (dbh == -1) { print " Ошибка при подключении!\n"; exit(1); }...
MsqISelectDB
msqISelectDB int msqISelectDB ( int sock , char*dbName ) Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз...
Пример
Пример /* Выбрать базу данных "mydatabase" */ result = msqlSelectDB( dbh, "mydatabase" ); if (result == -1) { print "Ошибка при выборе базы данных! \n"; exit(1...
MsqIQuery
msqIQuery int msqlQuery( int sock , char*query ) Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SE...
Пример
Пример rows_returned = msqlQuery( dbh, "SELECT FROM people" );...
MsqIStoreResult
msqIStoreResult m_result *msqlStoreResult() Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре...
Пример
Пример m_result *results; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); IK. 897 /* К данным из этого запроса можно обращаться через'results'...
MsqIFreeResult
msqIFreeResult void msqIFreeResult ( m_result*result ) Освобождает память, связанную со структурой m_result....
Пример
Пример m_result "results; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); /* Выполнить работу */ msqIFreeResult(results);...
MsqIFetchRow
msqIFetchRow m_row msqIFetchRow ( m_result*result ) Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый усп...
Пример
Пример m_result *results; m_row "row; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); row = msqlFetchRow(results); printf("Третье п...
MsqlDataSeek
msqlDataSeek void msqlDataSeek ( m_result* result, int pos ) Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию...
Пример
Пример m_result *results; m_row Vow; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); row = msqlFetchRow(results); /* Вернуться к исходной поз...
MsqINumRows
msqINumRows int msqINumRows ( m_result*result ) Возвращает число строк в результирующем наборе....
Пример
Пример rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); rows = msqlNumRows(results);...
MsqIFetchField
msqIFetchField m_field "msqIFetchField ( m_result*result ) Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield д...
Пример
Пример m_field *field; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); field = msqlFetchField(results); /* 'field' теперь содержит информацию...
MsqlFieldSeek
msqlFieldSeek void msqlFieldSeek ( m_result*result , int pos ) Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после п...
Пример
Пример m_result "results; m_field 'field; rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); field = msqlFetchField(results); /* Вернутся к...
MsqlNumFields
msqlNumFields int msqlNumFields ( m_result* result ) Возвращает число полей в результирующем наборе....
Пример
Пример rows_returned = msqlQuery( dbh, "SELECT FROM people" ); results = msqlStoreResult(); fields = msqlNumFields(results);...
MsqICIose
msqICIose int msqICIose ( int sock ) Закрывает подключение к серверу баз данных mSQL....
Пример
Пример dbh = msqlConnect( (char')NULL ); /* Do work */ msqlClose(dbh);...
MsqIListDBs
msqIListDBs m_result *msqlListDBs ( int sock ) Возвращает структуру m_result, содержащую имена всех баз данных, доступных на сервере баз данных. Как и все структуры m_result, значение, возвра...
Пример
Пример databases = msqlListDBs(dbh); /* 'databases' содержит теперь имена всех баз данных на сервере*/...
MsqIListTables
msqIListTables m_result *msqIListTables ( int sock ) Возвращает структуру m_result, содержащую имена всех таблиц текущей базы данных. Как и все структуры m_result, значение, возвращаемое этой...
Пример
Пример tables = msqlListTables(dbh); /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/...
MsqIListFields
msqIListFields m_result 'msqIListFields ( int sock , char*tableName ) Возвращает структуру m_result, содержащую имена всех полей в указанной таблице. Как и все структуры m_result, значение, в...
Пример
Пример fields = msqlListFields(dbh, "people"); /* 'fields' содержит теперь имена всех полей в таблице'people' */...
MsqIListlndex
msqIListlndex m_result 'msqIListlndex ( int sock , char*tableName , char*index ) Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содер...
Пример
Пример index = msqll_istIndex(dbh, "people", "idx1"); /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */...








- Начало -