Выполнение запроса.

Вернуться в каталог

Как раскрутить сайт:

Каталог - это...
Поисковик - это...
Поисковики 1993г
Поисковики 1994г
Список каталогов
Каталоги для PR
Каталоги белые
Каталоги белые
Белые каталоги ссылок
Белые каталоги ссылок
Каталоги
Протокол HTTP 1.1
Сайты сателлиты
Yandex бан
Ошибки начинающих
Ошибки webмастера
Что Гугл знает?
О сайте из Google
robots.txt
Социалки
Расчет PageRank
Как раскрутить сайт
Причины игнора сайта
Фильтры Гугла
Хороший дизайн

Может пригодиться:

массажные кресла в розницу

Залог хорошего сайта
Софт вебмастеру
Выбрать хостинг
Платформы хостинга
Виртуальный сервер
Продвижение сайта
Секреты раскрутки 1
Секреты раскрутки 2
Раскруточные мифы
Оптимизация под каталоги
Заработать на сайте
Размещение банеров
Защита сайта
Спам в поздравлениях
SEO продвижение
Раскрутка Дорвеями
Секреты Гугла
Ссылки google ТОП-10
Сниппеты
Ключевые слова
Редирект
Грязная линковка
SEO слэнг
Подробно о PR
Бан партнерки

Реклама:

составление сметы в Москве

О поисковых системах
Внутренние факторы
Внешние факторы
Индексация сайта
Фильтры
Различия поисковых
Semonitor
Сохранить позиции после редизайна
Секреты Гугла


  • Вернуться в каталог





  • Rambler's Top100

    Выполнение запроса 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
    Особенности таблиц
    Еще о таблицах

    Вернуться в каталог