|
Выполнение запроса. |
Как раскрутить сайт:Каталог - это...Поисковик - это... Поисковики 1993г Поисковики 1994г Список каталогов Каталоги для PR Каталоги белые Каталоги белые Белые каталоги ссылок Белые каталоги ссылок Каталоги Протокол HTTP 1.1 Сайты сателлиты Yandex бан Ошибки начинающих Ошибки webмастера Что Гугл знает? О сайте из Google robots.txt Социалки Расчет PageRank Как раскрутить сайт Причины игнора сайта Фильтры Гугла Хороший дизайн Залог хорошего сайта Софт вебмастеру Выбрать хостинг Платформы хостинга Виртуальный сервер Продвижение сайта Секреты раскрутки 1 Секреты раскрутки 2 Раскруточные мифы Оптимизация под каталоги Заработать на сайте Размещение банеров Защита сайта Спам в поздравлениях SEO продвижение Раскрутка Дорвеями Секреты Гугла Ссылки google ТОП-10 Сниппеты Ключевые слова Редирект Грязная линковка SEO слэнг Подробно о PR Бан партнерки О поисковых системах Внутренние факторы Внешние факторы Индексация сайта Фильтры Различия поисковых Semonitor Сохранить позиции после редизайна Секреты Гугла |
|
Выполнение запроса API.
Выполнение запроса I mysgl_query(&mysgl, "запрос"); mysgl_real_query(&mysgl, "запрос", длина); Параметр запрос, передаваемый функции mysgl_query (), должен представлять собой строку, завершающуюся нулевым символом и содержащую один запрос SQL. Точку c запятой в конце запроса ставить не обязательно. Запрос выполняется c использованием соединения c базой, которое определяется объектом MYSQL, передаваемым в качестве первого параметра. Если запрос содержит двоичные данные, вам надо использовать функцию mysgl real query () и указать длину строки запроса. B составе двоичных данных может содержаться символ `\O', который mysgl_query () интерпретирует как конец строки. B случае успешного выполнения запроса возвращается значение NULL, a при наличии ошибки - одно из значений, приведенных в табл. 8.1.
Таблица 8.1. Коды ошибок, возвращаемые функцией Извлечение данных из набора результатов MYsQL_REЫ result; MYsQL_ROW row; result = mysgl use_result(&mysgl); row = mysgl_fetch_row(result); Перед тем как извлекать данные, возвращенные приложению, необходимо связать результаты выполнения запроса c объектом MYSQL_RES. Функция mysgl_use_result () присваивает объекту данного типа результаты, полученные при выполнении последнего зaпроса в рaмках указaнного соединения. После связывания результатов можно выполнять другие запросы, при этом имеющиеся данные не будут разрушены. Функция mysgl_use_result () возвращает значение NULL при успешном завершении. B противном случае возвращается один из кодов ошибки, перечисленных в табл. 8.1. Функция mysgl_fetch_row () загружает данные из запроса по одной строке и возвращает очередную строку в составе стpуктуры MYSQL ROW. Данные доступны посредством row [0] ... row [n-1] ,где n - число столбцов в наборе. При переборе всех данных надо использовать функции mysgl_num fields (result) и mysgl_ num_rows (result). Они позволяют определить соответственно число столбцов и количество возвращенных строк. Поочередную загрузку строк можно организовать посредством цикла wh i 1 е . Если строки исчерпаны, функция mysgl_fetch_row () возвращает значение NULL. Применение описанных средств для работы c запросом демонстрирует программа, приведенная в листинге 8.1. На заметку Функцию mysgl_queryO можно использовать для выполнения любого выражения sQL, a не только запроса SELECT. Конечно, извлечение данных при выполнении операций INSERT, UPDATE или DELETE не имеет смысла, и соответствующая попытка вызовет появление сообщения oб ошибке. Вывод сообщений об ошибках mysgl_errno(&mysgl); mysgl_error(&mysgl); Если при рабoте c MySQL возникает ошибка, можно вычислить ее внутренний код и получить соответствующее сообщение. Сделать это позволяют функции mysqi errno () и mysgl_error ( ) . B качестве параметра указанным функциям передается объект MYSQL, описывающий соединениe, a возвращаемые функциями данные соответствуют последнему запросу, выполненному в рамках этого соединения. Если последний запрос был выполнен успешно, функция mysgl_errno () возвратит значение O, a функция mysgl_error () - NULL. Функции mysgl_errno () и mysgl_error ( ) можно использовать для выяснения причин ошибки, возникшей как при соединении c базой данных, так и при выполнении запроса. I mysgl close(&mysgl); Выполнив необходимые действия c базой MYSQL, надо закрыть соединение c помощью функции mуsql_сlоsе (). При этом ресурсы, выделенные посредством mysgl_init () , освобождаются. Пример программы на языке C B листинге 8.1 представлен исходный код программы,которая устанавливает соединение с базой данных, выполняет запрос и выводит результаты в виде таблицы. Листинг 8.1. Выполнение запроса c помощью C АРI #include stdio.h #include mysgl/mysgl.h mai n 0 { MYSQL mysgl; MYSQL_RES *result; MYSQL_ROW row; int numrows, numcols, c; mysglinit(&mysgl); / соединение c базой* / if (!mysgl_realconnect(&mysgl, "localhost", "username", "password", "dbname", 0, NULL, 0)) { fprintf(stderr, "Failed to connect to database: Error %d: %s\n", mysgl_errno(&mysgl), mysgl_error (&mysgl)); } /°* Выполнение запроса */ char query[] _ "SELECT bo0k_id, coed, title FROM book"; if (mysgl_query(&mysgl, query)) { fprintf(stderr, "Error executing query: Error %d: %s\n", mysgl errno(&mysgl), mysgl error(&mysgl)); } /* Сохранение дескриптора результата */ result = mysgl use_result(&mysgl); if (!result) { fprintf(stdem, "Error executing query: Error %d: %s\n", mysgl_errno(&mysgl), mysgl_error(&mysgl)); } / определение числа столбцoв в наборе результатов */ numcols = mysgl num_fields(result); /* перебор в цикле набора результатов */ while (row = mysgl_fetch_row(result)) { for(c=0; c numcols; c++) { printf("%s\t", row[c]) } printf("\n"); } Выходные данные, полученные в результате выполнения скомпилированной программы, имеют следующий вид: 1 good ]acob Two-Two Meets the Hooded Fang 2 mint In the Night Kitchen 3 poor How to Be a Grouch 4 good Green Eggs and Ham 5 (null) Inferno Пер. с англ. - М.: ООО "И.Д.Вильямс", 2006. |
Основы MySQL:ВведениеСхема MySQL Управление базами Создание баз Создание таблиц Создание столбцов Идентификаторы Хранение данных Включение даты Импорт данных Включение данных Простые запросы Устранение повторов Обработка значений Значения NULL Обработка данных Оновление значений Безопасность Удаление записей
Спонсор сайта:
Установка паролей Установка привилегий Клиентская часть Параметры соединения MySQL АРI Запросы АРI АРI для Perl РНР АРI Расширенные запросы Ключевое слово JOIN Вложенные запросы Выбор результатов Проблемы MySQL Восстановление базы Частые ошибки Кол-во соединений Подготовка к работе В курс дела Имена столбцов
Реклама:
Внесение данных Внесение данных 2 Особенности таблиц Еще о таблицах |