Основы программирования в Linux
Шрифт:
Зная, как извлекать строки, можно перейти к рассмотрению обработки полученных реальных данных.
MySQL, как большинство баз данных SQL, возвращает два вида данных:
данные, извлеченные из таблицы и называемые данными столбцов;
данные о данных, так называемые метаданные, например, имена столбцов и их типы.
Сначала сосредоточимся на получении данных, как таковых, в пригодном к использованию виде.
Функция
Помимо этого вы можете использовать
В программах, написанных для более ранних версий MySQL, вы можете встретить функцию
Если оставить в стороне заботы о форматировании, вы уже знаете, как немедленно вывести данные. Добавьте простую функцию
Обратите внимание на то, что для упрощения примера данные о подключении, результате и строке, полученные из функции
1. Далее приведена очень простая подпрограмма для вывода данных:
2. Вставьте ее в конец файла select2.c и добавьте объявление и вызов функции:
3. Теперь сохраните законченный проект с именем select3.c. В заключение откомпилируйте и выполните select3, как показано далее:
Итак, программа работает, несмотря на не слишком эстетически привлекательный вывод. Но вы не смогли учесть в результате возможные значения
Вызывать эту функцию следует многократно, до тех пор, пока не будет возвращено значение
Таблица 8.12
| Поле в структуре типа MYSQL_FIELD | Описание |
|---|---|
| char *name; | Имя столбца в виде строки |
| char *table; | Имя таблицы, из которой получен столбец. Оно особенно полезно в запросе с использованием нескольких таблиц. Имейте в виду, что вычисляемое значение в результате, такое как MAX , будет иметь пустую строку для имени таблицы |
| char *def; | При вызове функции mysql_list_fields (которую мы не обсуждаем) это поле содержит значение в столбце по умолчанию |
| enum enum_field_types type; | Тип столбца. См. пояснения сразу после таблицы |
| unsigned int length; | Ширина столбца, заданная при определении таблицы |
| unsigned int max_length; | Если применяется функция mysql_store_result , это поле содержит длину в байтах самого длинного извлеченного значения столбца. Если применяется функция mysql_use_result , поле не задается |
| unsigned int flags; | Флаги содержат информацию об определении столбца, а не о найденных данных. у распространенных флагов очевидные значения: NOT_NULL_FLAG , PRI_KEY_FLAG , UNSIGNED_FLAG , AUTO_INCREMENT_FLAG и BINARY_FLAG . Полный список флагов можно найти в документации MySQL |
| unsigned int decimals; | Количество знаков после десятичной точки. Справедливо только для числовых полей |
Барон Бранд Берс. Том 1
1. Бранд Берс
Проза:
магический реализм
рейтинг книги
Воин
2. Атланты
Фантастика:
научная фантастика
рейтинг книги
Санта-Хрякус
20. Плоский мир
Фантастика:
юмористическая фантастика
рейтинг книги
Золото бунта
Приключения:
исторические приключения
рейтинг книги
Эволюционер из трущоб. Том 6
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Рубеж. Пентакль
6. Большая серия русской фантастики
Фантастика:
научная фантастика
рейтинг книги
Кухня народов СССР
Дом и Семья:
кулинария
рейтинг книги
Я все еще царь. Книга XXXI
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Виконт. Книга 2. Обретение силы
2. Псевдоним `Испанец`
Фантастика:
боевая фантастика
попаданцы
рпг
рейтинг книги
Дырка для ордена; Билет на ладью Харона; Бремя живых
Фантастика:
альтернативная история
фэнтези
рейтинг книги
Барон Бранд Берс. Том 3
3. Бранд Берс
Проза:
магический реализм
рейтинг книги
Фамильяр
Фантастика:
фэнтези
рейтинг книги
Избранное
Фантастика:
альтернативная история
рейтинг книги