Отримання списку полів таблиці

Тепер можна зайнятися власне рішенням завдання. Як отримати список полів таблиці? Дуже просто. У PHP і на цей випадок є своя команда - mysql_list_fields.

ресурс mysql_list_fields (рядок database_name, рядок table_name [, ресурс link_identifier])

Функція mysql_field_name повертає ім'я поля, отриманого в результаті виконання запиту. Функція mysql_field_len повертає довжину поля. Функція mysql_field_type повертає тип поля, а функція mysql_field_flags повертає список прапорів поля, записаних через пропуск. Типи поля можуть бути int, real, string, blob і т.д. Прапори можуть бути not_null, primary_key, unique_key, blob, auto_increment і т.д.

Синтаксис у всіх цих команд однаковий:

рядок mysql_field_name (ресурс result, ціле field_offset) рядок mysql_field_type (ресурс result, ціле field_offset) рядок mysql_field_flags (ресурс result, ціле field_offset) рядок mysql_field_len (ресурс result, ціле field_offset)

Тут result - це ідентифікатор результату запиту (наприклад, запиту, відправленого функціями mysql_list_fields або mysql_query (про неї буде розказано пізніше)), а field_offset - порядковий номер поля в результаті.

Взагалі кажучи, те, що повертають функції типу mysql_list_fields або mysql_query, являє собою таблицю, а точніше, покажчик на неї. Щоб отримати з цієї таблиці конкретні значення, потрібно задіяти спеціальні функції, які через підрядник читають цю таблицю. До таких функцій і відносяться mysql_field_name і т.п. Щоб перебрати всі рядки в таблиці результату виконання запиту, потрібно знати число рядків в цій таблиці. Команда mysql_num_rows (ресурс result) повертає число рядків у безлічі результатів result.

А тепер спробуємо отримати список полів таблиці Artifacts (колекція експонатів).

В результаті має вийти приблизно ось що (якщо в таблиці всього два поля, звичайно):

Ім'я поля: idТіп поля: intДліна поля: 11Строка прапорів поля: not_null primary_key auto_incrementІмя поля: titleТіп поля: stringДліна поля: 255Строка прапорів поля: