Лістинг 5.18. Скрипт datashow.pl показує бази даних, MYSQL, що є на сервері
#!/usr/bin/perl -w
use strict;
use CGI qw( standard);
use CGI Carp;
# Використовувати модуль DBI use DBI CGI use_named_parameters(1)
my ($server, $sock, $host);
my $output = new CGI;
$server = param('server') or $server ="";
# Підготувати DBD-драйвер для MYSQL
my $driver = DBI->install_driver('mysql');
my @databases = $driver->func($server '_ListDBs');
# Якщо параметр §databases не визначений # передбачаємо, що на
# цьому вузлі не запущений сервер MYSQL Проте це може бути викликано
# іншими причинами Повний текст повідомлення про помилку
# можна отримати перевіривши $DBI errmsg
if (not @databases) {
print header, start_html( title => Дані по $server, BGCOLOR => white )
print <<END_OF_HTML, <H1>$server</h1>
Ha $server, мабуть не запущений сервер mSQL </body></html> END_OF_HTML
exit(0)}
print header, start_html(title =>"Данные по $host", BGCOLOR => white)
print <<END_OF_HTML, <H1>$host</h1>
<P>Соединение з $host на сокеті $sock<P>Базы даних <br><UL>
END_OF_HTML
foreach(@databases){
print "<LI>$_\n";}
print << END_OF_HTML
</ul></body></html>
exit(0)
У лістингу 5.19 tableshow.pl приймає як параметри ім'я сервера бази даних (за замовчуванням «localhost») і ім'я бази даних на цьому сервері. Потім програма показує всі таблиці, наявні в цій базі даних.
Лістинг 5.19. Скрипт tableshow.pl виводить список всіх таблиць в базі даних
#!/usr/bin/perl -w
use strict;
use CGI qw( standard);
use CGI Carp;
# Використовувати модуль Msql.pm
use DBI;
CGI use_named_parameters(1);
my ($db);
my $output = new CGI;
$db = param( db ) or die( He вказана база даних' );
# Connect to the requested server
my $dbh = DBI->connect( DBI mysql $db $server, undef, undef);
# Якщо не існує $dbh значить, спроба з'єднання з сервером
# бази даних не удалася Можливо, сервер не запущений
# або не існує вказаної бази даних
if (not $dbh) {
print header, start_html( title => Дані по $host => $db,
BGCOLOR => white )
print <<END_OF_HTML <H1>$host</h1> <H2>$db</h2>
Спроба з'єднання не удалася з наступної причини <BR>
$DBI errstr </body></html> END_OF_HTML
exit(0)}
print header, start_html( title => Дані по $host => $db,
BGCOLOR => white ), print <<END_OF_HTML
<H1>$host</h1> <H2>$db</h2><р>
Таблиці:<br><UL>
END_OF_HTML
# $dbh->listtable повертає масив таблиць
# наявних в поточній базі даних.
my @tables = $dbh->func('_ListTables');
foreach (@tables) {
print "<LI>$_\n"; }
print <<END_OF_HTML; </ul>
</body></html> END_OF_HTML
exit(0);
І нарешті, лістинг 5.20 показує, як вивести всі відомості про деяку таблицю.
Дата добавления: 2016-04-02; просмотров: 811;