Если я правильно понимаю вопрос, звучит так, будто вы после SQL :: Abstract . Сначала мы создаем объект SQL::Abstract
:
use SQL::Abstract;
my $sql = SQL::Abstract->new;
Теперь, в качестве примера, мы будем использовать его для вставки некоторых данных в таблицу:
my %record = (
FirstName => 'Buffy',
LastName => 'Summers',
Address => '1630 Revello Drive',
City => 'Sunnydale',
State => 'California',
Occupation => 'Student',
Health => 'Alive',
);
my ($stmt, @bind) = $sql->insert(’staff’,\%record);
В результате:
$stmt = "INSERT INTO staff
(FirstName, LastName, Address, City,
State, Occupation, Health)
VALUES (?, ?, ?, ?, ?, ?, ?)";
@bind = ('Buffy','Summers','1630 Revello Drive',
'Sunnydale',’California','Student','Alive');
Приятно то, что мы можем передать это непосредственно в DBI:
$dbh->do($stmt, undef, @bind);
Конечно, вы хотите обновлять записи, а не просто вставлять их. К счастью, это тоже довольно просто:
my $table = 'People';
my %new_fields = (
Occupation => 'Slayer',
Health => 'Dead',
);
my %where = (
FirstName => 'Buffy',
LastName => 'Summers',
);
my ($stmt, @bind) = $sql->update($table, \%new_fields, \%where);
$dbh->do($stmt, undef, @bind);
Это производит:
$stmt = 'UPDATE People SET Health = ?, Occupation = ?
WHERE ( FirstName = ? AND LastName = ? )';
@bind = ('Dead', 'Slayer', 'Buffy', 'Summers');
Если вам нужна дополнительная информация о SQL::Abstract
, я рекомендую вам посмотреть ее CPAN-страницу . Также есть глава в Perl Training Australia Руководство по программированию баз данных на Perl , которое свободно доступно на нашей странице заметок курса .
Всего наилучшего,
Пол
Отказ от ответственности: я управляющий директор Perl Training Australia, и поэтому считаю, что наши заметки о курсе довольно хороши.