Я очень впечатлен примером использования бубакером укупорочного средства для этого.
Точно так же, если исходная цель состояла в том, чтобы сделать кодовую базу меньше и удобнее в обслуживании, я не могу не думать, что есть много шума, требующего удаления из исходного кода, прежде чем кто-либо предпримет преобразование в CDBI или DBIC и т. Д. (Несмотря на то, что они оба великолепные.)
Если $dbh
был создан с атрибутом RaiseError
, установленным в атрибутах, большая часть этого кода исчезнет:
$sql_update = qq { UPDATE database.table
SET column = 'UPDATE!'
WHERE id = ?
};
$sth_update = $dbh->prepare($sql_update);
$sth_update->execute($parameter);
Я не вижу, чтобы обработка ошибок в исходном коде добавляла многое, чего вы не получите от ванили die
, производимой RaiseError
, но, если это важно, взгляните на HandleError
атрибут в справочной странице DBI
.
Кроме того, если такие операторы не используются повторно (что часто является главной целью их подготовки, чтобы кэшировать, как они оптимизируются; другая причина состоит в том, чтобы смягчить против внедрения SQL с использованием заполнителей), то почему бы не использовать do
$dbh->do($sql_update, \%attrs, @parameters);