while(my $product = $query -> fetchrow_hashref («NAME_uc»))

{

#Выводим элементы хеша

#с индексами DESCRIPTION, DETAILS и PRICE

$pagecontent.=»<tr><td>».$product-> {DESCRIPTION}.»</td>».

«<td>».$product- >{DETAILS}.»</td>».

«<td>».$product-> {PRICE}.»</td></tr> »;

}

#Освобождаем ресурсы

$query -> finish();

#Отсоединяемся от базы данных

$dbh->disconnect();

#Выводим полученные данные

print “

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<!– Выводим заголовок списка товаров –>

<h1>Список товаров</h1>

<table>

<tr>

<th>Наименование</th>

<th>Описание</th>

<th>Цена</th>

</tr>

«.$pagecontent.»

</table>

</body>

</html>

“;

Открыв в браузере страницу http://localhost/cgi- bin/output.pl, вы увидите список товаров (рис. 4.24).

Рис. 4.24. Вывод информации на странице

Отметим, что если в результате запроса присутствуют несколько столбцов с одинаковыми именами (это возможно в случае получения информации из нескольких таблиц), то метод fetchrow_hashref () предоставляет доступ только к последнему из этих столбцов. Кроме того, порядок элементов в хеше может отличаться от порядка столбцов в таблице; в этом легко убедиться, если вывести значения всех полей с помощью цикла foreach:

while(my $product = $query->fetchrow_hashref («NAME_uc»))

{

print «<p>»

foreach my $field_name (keys %$product)

{

print «$product->{$field_name} »;

}

print “</p>”

}

Этих недостатков лишен метод fetchrow_arrayref(), который работает аналогично методу fetchrow_hashref(), но возвращает ссылку на массив с числовыми индексами. При использовании метода fetchrow_arrayref() сценарий для вывода списка товаров будет следующим (листинг 4.13). Листинг 4.13. Получение информации и отображение ее на странице

#!»C:Program Filesxamppperlinperl.exe»

print «Content-type: text/html; charset=windows-1251 »;

use DBI;

#Подсоединяемся к базе данных

my $dbh = DBI -> connect(«DBI:mysql:database=SalesDept;host=localhost»,

«username»,»userpassword»);

if(!$dbh)

{

print «Ошибка доступа к базе данных. Приносим свои извинения”;

die();

}

#Устанавливаем кодировку CP-1251

$dbh->do(«SET NAMES cp1251»);

#Выполняем запрос к базе данных

my $query = $dbh->prepare(«SELECT * FROM Products»);

my $qresult = $query -> execute();

if(! $qresult)

{

print “Ошибка доступа к базе данных. Приносим свои извинения”;

die();

}

#Создаем строку для вывода результатов запроса

my $pagecontent=””;

#Для каждой строки из результата запроса

#записываем данные в массив и сохраняем ссылку на массив

#в переменной $product

while(my $product = $query -> fetchrow_arrayref())

{

#Выводим элементы массива с номерами 1, 2, 3

$pagecontent.=»<tr><td>».$product-> [1].»</td>».

«<td>».$product-> [2].»</td>».

«<td>».$product-> [3].»</td></tr> »;

}

#Освобождаем ресурсы

$query -> finish();

#Отсоединяемся от базы данных

$dbh->disconnect();

#Выводим полученные данные

print “

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<!– Выводим заголовок списка товаров –>

<h1>Список товаров</h1>

<table>

<tr>

<th>Наименование</th>

<th>Описание</th>

<th>Цена</th>

</tr>

«. $pagecontent.»

</table>

</body>

</html>

“;

Итак, вы узнали, как создать сценарий Perl, запрашивающий информацию из базы данных. Теперь кратко обобщим основные сведения, изложенные в этом разделе.

Итоги

В данном разделе вы изучили функции языка Perl, позволяющие выполнять все необходимые операции с базой данных MySQL:

• подключение к базе данных и отключение от нее;

• выполнение SQL- команд как получающих информацию из базы данных (методы prepare() и execute()), так и не получающих ее (метод do());

• обработка ошибок.

Ознакомиться с полным списком функций модуля Perl DBI вы можете, перейдя по странице http://dbi.perl.org/ на ссылку Manual pages.

В следующем разделе вы узнаете о том, как взаимодействуют с базой данных веб-приложения на языке Java.

4.3. Интерфейс с Java

В этом разделе рассмотрим разработку Java-сервлетов, использующих базу данных MySQL для хранения и поиска информации. Вы узнаете, как создать и настроить среду разработки сервлетов, а также научитесь использовать для взаимодействия с MySQL функции JDBC (Java Database Connectivity – интерфейс доступа к базам данных из приложений Java).

В первую очередь вы узнаете, какое программное обеспечение потребуется для создания сервлетов.

Среда разработки сервлетов

Для создания сервлетов необходимы следующие программы:

• Java Development Kit (JDK) – пакет поддержки разработок в среде Java;

• дополнительная библиотека servlet-api.jar (или servlet.jar), необходимая для компиляции сервлетов, но не входящая в состав Java Development Kit;

• контейнер сервлетов – программа, обеспечивающая загрузку и выполнение сервлетов;

• программа, выполняющая функции веб- сервера.

Широко известным контейнером сервлетов является Tomcat – свободно распространяемая программа с открытым кодом. Tomcat может выполнять функции веб-сервера либо использоваться совместно с веб-сервером Apache. В состав Tomcat входит и библиотека servlet-api.jar.

Кроме того,

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату