тип VARCHAR(255)), описание - текстовое поле (имеет тип TEXT), а в полях 'автор' и 'изображение' содержатся идентификаторы автора из коллекции Persons и изображения экспоната из коллекции Images соответственно.
Построение интерфейса для добавления информации
Итак, у нас есть какая-то таблица в базе данных. Чтобы построить интерфейс для добавления информации в эту таблицу, нужно ее структуру (т.е. набор ее полей) отобразить в html-форму.
Разобьем эту задачу на следующие подзадачи:
- установка соединения с БД;
- выбор рабочей БД;
- получение списка полей таблицы;
- отображение полей в html-форму.
После этого данные, введенные в форму, нужно записать в базу данных. Рассмотрим все эти задачи по порядку.
Итак, первое, что нужно сделать, - это установить соединение с базой данных. Воспользуемся функцией mysql_connect.
Синтаксис mysql_connect
ресурс mysql_connect ( [строка server
[, строка username [, строка password
[, логическое new_link
[, целое client_flags]]]]])
Данная функция устанавливает соединение с сервером MySQL и возвращает указатель на это соединение или FALSE в случае неудачи. Для отсутствующих параметров устанавливаются следующие значения по умолчанию:
server = 'localhost:3306'
username = имя пользователя владельца
процесса сервера
password = пустой пароль
Если функция вызывается дважды с одними и теми же параметрами, то новое соединение не устанавливается, а возвращается ссылка на старое соединение. Чтобы этого избежать, используют параметр new_link, который заставляет в любом случае открыть еще одно соединение.
Параметр client_flags - это комбинация следующих констант: MYSQL_CLIENT_COMPRESS (использовать протокол сжатия), MYSQL_CLIENT_IGNORE_SPACE (позволяет вставлять пробелы после имен функций), MYSQL_CLIENT_INTERACTIVE (ждать interactive_timeout секунд - вместо wait_timeout - до закрытия соединения).
Параметр 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');
?>
Теперь можно заняться собственно решением задачи. Как получить список полей таблицы? Очень