Perl для системного администрирования


         

Использование DBI


Вот что следует делать для использования DBI. Информацию о самом DBI можно найти в книге «Programming the Perl DBI» Аллигатора Декарта (Alligator Descartes) и Тима Банса (Tim Bunce) (O'Reilly).

Шаг 1: Загрузите нужный модуль

Здесь нет ничего особенного, нужно лишь написать:

use DBI;

Шаг 2: Соединитесь с базой данных и получите дескриптор соединения

Код на Perl, устанавливающий DBI-соединение с базой данных MySQL и возвращающий дескриптор базы данных, выглядит примерно так:

соединиться с базой данных $database используя заданное имя

Sdatabas

$dbh = DBI-->comect("D8I:nysal :Sdatabase Saseriare $pw);

die "Онибка Н-'-юзмолно соединиться:

$dbh);

До соединения с сервером DBI загрузит низкоуровневый DBD-драйвер (DBD: :^ysc:!). Перед тем как двигаться дальше, проверим, что соединение (при помощи con пес: ()) установлено. DBI предоставляет два параметра для connect () - Raise-Error и Print Er , определяющие, будет ли DBI выполнять эту проверку или сообщит об ошибках, когда они возникнут. В частности, если применить:

$dbh = DBI->connect("DBI:mysql:$database",

$username,$pw,{RaiseError =

то DBI вызовет die, при условии, что соединение с базой данных не произошло.

Шаг 3: Отправьте команды SQL-серверу

Когда модуль загружен и соединение с сервером баз данных установлено, начинается самое интересное. Пошлем серверу несколько SQL-команд. Мы будем использовать запросы, приведенные в качестве примеров из приложения D. В этих запросах для заключения в кавычки применяется оператор q (т. e. something записывается как q{something}), следовательно, не нужно беспокоиться о кавычках внутри запросов. Вот первый из двух DBI-методов, существующих для отправки команд:

$results=$dbh->do(q{UPDATE hosts

SET bldg = 'Main'

WHERE name = 'bendir'});

die "Невозможно выполнить обновление:

$DBI: :errstr\n" unless (define;; Sresults);

Переменная Sresuits равна либо количеству обновленных записей, либо uricief, если произошла ошибка. И хотя важно знать, сколько записей было обработано, такой метод абсолютно не подходит для операторов, подобных SELECT, где необходимо увидеть сами данные. Следовательно, нужно применить второй метод.



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий