Язык программирования Perl



              

Универсальный интерфейс к базам данных - DBI - часть 2


$sth = $dbh->prepare($sql_statement);

В команде SQL могут присутствовать слоты (placeholders), в которые при выполнении команды будут подставлены конкретные значения данных. Эта схема похожа на подстановку значений в поледержатели формата отчета. Подготовленная команда доступна через манипулятор команды (statement handler), возвращаемый методом prepare(), и может выполняться многократно.

  • Выполнение команды может производиться несколькими методами. Подготовленную ранее команду выполняет метод командного манипулятора execute(), которому могут передаваться значения для подстановки в выполняемое SQL-предложение:

    $sth->execute(@bind_values); # выполнить со списком значений

    Или же SQL-команду можно выполнить без предварительной подготовки методом do() манипулятора базы данных:

    $dbh->do($sql_statement); # выполнить команду без подготовки

  • Обработка полученных данных может выполняться одной из многочисленных команд, предоставляемых интерфейсом DBI.
  • Отсоединение от базы данных выполняется методом disconnect() манипулятора базы данных, который производит необходимые завершающие действия и освобождает используемые ресурсы:

    $dbh->disconnect; # отключиться от БД

  • Приведенная схема проста и логична, поэтому работа с базами данных через DBI быстро осваивается программистами. Но прежде чем перейти к примерам использования DBI, нужно сделать еще несколько пояснений.

    В языке структурированных запросов SQL используется небольшой набор команд, но они позволяют выполнять все необходимые действия над информацией в базе данных. Основные команды SQL: создание базы данных (CREATE), добавление записей (INSERT), их изменение (UPDATE) и удаление (DELETE), а также выборка записей (SELECT) по указанному условию. Изучение языка SQL выходит за рамки этого курса, поэтому в примерах будут применяться только самые простые их формы, и смысл этих команд будет понятен из контекста.

    Слоты для подстановки параметров в SQL-команду обозначаются знаками вопроса '?' и выглядят таким образом:

    $sth = $dbh->prepare( 'SELECT name, area FROM mollusc WHERE id>? AND id<?');

    При выполнении этой команды с параметрами 1000 и 9000 будут выбраны записи со значениями колонки id в заданном диапазоне. При подстановке значений аргументов в команду слоты заполняются слева направо:

    $sth->execute(1000, 9000); # подставить числа вместо ?

    После подстановки значений будет выполнена команда, означающая "выбрать значения столбцов name и area из таблицы mollusc у тех записей, где значение столбца id больше 1000 и меньше 9000":

    SELECT name, area FROM mollusc WHERE id>1000 AND id<9000

    Кроме средств выполнения SQL-команд механизм DBI предоставляет множество методов для выборки из базы данных информации в виде массивов или хэшей для более удобной обработки в программе на Perl. Более подробно с ними можно познакомиться, если почитать системную документацию, выведенную по команде

    perldoc DBI




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