Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Получение списка полей таблицы



Теперь можно заняться собственно решением задачи. Как получить список полей таблицы? Очень просто. В PHP и на этот случай есть своя команда - mysql_list_fields.

Синтаксис mysql_list_fields

ресурс mysql_list_fields (строка database_name, строка table_name [, ресурс link_identifier])

Эта функция возвращает список полей в таблице table_name в базе данных database_name. Получается, что выбирать базу данных нам было необязательно, но это пригодится позже. Как можно заметить, результат работы этой функции - переменная типа ресурс. То есть это не совсем то, что мы хотели получить. Это ссылка, которую можно использовать для получения информации о полях таблицы, включая их названия, типы и флаги.

Функция 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 (коллекция экспонатов).

<?$conn = mysql_connect("localhost","nina","123")or die("Невозможно установить соединение: ". mysql_error());echo "Соединение установлено";mysql_select_db("book");$list_f = mysql_list_fields ("book","Artifacts",$conn); $n = mysql_num_fields($list_f);for($i=0;$i<$n; $i++){ $type = mysql_field_type($list_f, $i); $name_f = mysql_field_name($list_f,$i); $len = mysql_field_len($list_f, $i); $flags_str = mysql_field_flags ($list_f, $i);echo "<br>Имя поля: ". $name_f;echo "<br>Тип поля: ". $type;echo "<br>Длина поля: ". $len;echo "<br>Строка флагов поля: ". $flags_str. "<hr>";}?>

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

Имя поля: idТип поля: intДлина поля: 11Строка флагов поля: not_null primary_key auto_increment_________________________________________________Имя поля: titleТип поля: stringДлина поля: 255Строка флагов поля:




Дата публикования: 2015-01-24; Прочитано: 207 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...