Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

Параметр new_link появился в PHP 4.2.0, а параметр client_flags - в PHP 4.3.0.

Соединение с сервером закрывается при завершении исполнения скрипта, если оно до этого не было закрыто с помощью функции mysql_close.

Итак, устанавливаем соединение с базой данных на локальном сервере для пользователя nina с паролем "123":

<?

$conn = mysql_connect(

"localhost", "nina","123")

or die("Невозможно
установить

соединение: ". mysql_error);

echo "Соединение установлено";

mysql_close($conn);

?>

Действие mysql_connect равносильно команде

shell>mysql -u nina -p123

Выбор базы данных

После установки соединения нужно выбрать базу данных, с которой будем работать. Наши данные хранятся в базе данных book. В MySQL выбор базы данных осуществляется с помощью команды use:

mysql>use book;

В PHP для этого существует функция mysql_select_db.

Синтаксис mysql_select_db:

логическое mysql_select_db (

строка database_name

[, ресурс link_identifier])

Эта функция возвращает TRUE в случае успешного выбора базы данных и FALSE - в противном случае.

Сделаем базу данных book рабочей:

<?

$conn = mysql_connect(

"localhost","nina","123")

or die("Невозможно установить

соединение: ". mysql_error);

echo "Соединение установлено";

mysql_select_db("book");

?>

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

Теперь можно заняться собственно решением задачи. Как получить список полей таблицы? Очень просто. В 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;

Поделиться:
Популярные книги

Время гарпии

Пирс Энтони
17. Ксанф
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Время гарпии

Письма (1866)

Достоевский Федор Михайлович
Проза:
русская классическая проза
5.00
рейтинг книги
Письма (1866)

Идеальный мир для Лекаря 17

Сапфир Олег
17. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 17

Тот, кто знает. Книга вторая. Перекресток

Маринина Александра
5.00
рейтинг книги
Тот, кто знает. Книга вторая. Перекресток

Дважды одаренный. Том IV

Тарс Элиан
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
7.50
рейтинг книги
Дважды одаренный. Том IV

Время Путина

Медведев Рой Александрович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Время Путина

АН (цикл 11 книг)

Тарс Элиан
Аномальный наследник
Фантастика:
фэнтези
героическая фантастика
попаданцы
аниме
5.75
рейтинг книги
АН (цикл 11 книг)

Философия и культура

Ильенков Эвальд Васильевич
Научно-образовательная:
философия
5.00
рейтинг книги
Философия и культура

Память Света/Память огня (др. перевод)

Сандерсон Брендон
14. Колесо Времени
Фантастика:
фэнтези
7.50
рейтинг книги
Память Света/Память огня (др. перевод)

Батальоны тьмы. Трилогия

Болл Брайан Н.
18. Фантастический боевик
Фантастика:
боевая фантастика
5.00
рейтинг книги
Батальоны тьмы. Трилогия

Зеркало ее сновидений

Дональдсон Стивен Ридер
1. Нужды Морданта
Фантастика:
фэнтези
7.17
рейтинг книги
Зеркало ее сновидений

Студент из прошлого тысячелетия

Еслер Андрей
2. Соприкосновение миров
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Студент из прошлого тысячелетия

Конан из Киммерии

Говард Роберт Ирвин
Шедевры фантастики
Фантастика:
фэнтези
боевая фантастика
6.25
рейтинг книги
Конан из Киммерии

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер