Введение в СУБД MySQL


Example.13.3


#!/usr/bin/perl -w

use strict;

use CGI qw(:standard);

use CGI::Carp;

# Использовать модуль DBI use DBI; CGI::use_named_parameters(1);

my ($db,Stable);

my Soutput = new CGI;

$server = param('server') or $server = ";

$db = param('db') or die("He указана база данных !");

# Соединиться с указанным сервером.

my $dbh = DBI->connect("DBI:mysql:$db:$server", undef, undef);

# Готовим запрос к серверу, требующий все данные

# таблицы.

my $table_data = $dbh->prepare("select * from Stable");

# Посылаем запрос серверу.

$table_data->execute;

# Если возвращаемое значение не определено, таблица не существует

# или пуста; мы не проверяем, что из двух верно.

if (not $table_data) {

print header, startjtml( 'title'=>

"Данные по $host => $db => Stable", 'BGCOLOR'=>'white');

prin<

$host

$db

Таблицы'Stable' нет в $db на $host.

END_OF_HTML

exit(0); }

# Теперь мы знаем, что есть данные для выдачи. Сначала выведем

# структуру таблицы.

print header, start_html( title'=>"Данные по $host => $db => $table",

'BGCOLOR'=>'white');

print <

$host

$db

$table

Пoля

<ТН>Поле<ТН>Тип<ТН>Размер<ТН>МОТ NULL

    END_OF_HTML

If $table_data->name возвращает ссылку

# на массив полей таблицы.

my ©fields = @{$table_data->NAME};

# $table_data->type возвращает ссылку на массив типов полей.

# Возвращаемые типы имеют стандартные обозначения SQL,

# а не специфические для MySQL.

my @types = @{$table_data->TYPE};

# $table_data->is_not_null возвращает ссылку на массив типа Boolean,

# указывающий, в каких полях установлен флат 'NOT NULL'.

my @>not_null = @{$table_data->is_not_null};

# $table_data->length возвращает ссылку на массив длин полей.

Они фиксированные

# для типов INT и REAL, но переменые (заданные при создании

# таблицы) для CHAR.

my @length = @{$table_data->length};

# Все перечисленные выше массивы возвращаются в одном и том же




Начало  Назад  Вперед