mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Unify the statement execution methods so that we can have consistent exception raising
This commit is contained in:
parent
72793480b2
commit
bef362c12b
@ -122,20 +122,12 @@ sub createResultsFrame {
|
||||
my $self = shift;
|
||||
my($statement, $execute, @values) = @_;
|
||||
$self->assert($self->handle, 1, 'No database handle: '.(defined($self->errstr) ? $self->errstr : 'unknown error'));
|
||||
# untaint the statement and values... (XXX?)
|
||||
foreach my $value ($statement, @values) {
|
||||
if (defined($value)) {
|
||||
$value =~ /^(.*)$/os;
|
||||
$value = $1;
|
||||
} else {
|
||||
$value = '';
|
||||
}
|
||||
}
|
||||
my $handle = $self->handle->prepare($statement);
|
||||
if ($handle and (not $execute or $handle->execute(@values))) {
|
||||
return PLIF::Database::ResultsFrame::DBI->create($handle, $self, $execute);
|
||||
$statement =~ /^(.*)$/os; # untaint # (XXX?)
|
||||
my $handle = $self->handle->prepare($1);
|
||||
if ($handle) {
|
||||
return PLIF::Database::ResultsFrame::DBI->create($handle, $self, $execute, @values);
|
||||
} else {
|
||||
raise PLIF::Exception::Database ('message' => $handle->errstr);
|
||||
raise PLIF::Exception::Database;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,10 +40,12 @@ use PLIF::Exception;
|
||||
sub init {
|
||||
my $self = shift;
|
||||
$self->SUPER::init(@_);
|
||||
my($handle, $database, $executed) = @_;
|
||||
my($handle, $database, $execute, @values) = @_;
|
||||
$self->handle($handle);
|
||||
$self->database($database);
|
||||
$self->executed($executed);
|
||||
if ($execute) {
|
||||
$self->reexecute(@values);
|
||||
}
|
||||
}
|
||||
|
||||
sub lastError {
|
||||
@ -108,10 +110,22 @@ sub rows {
|
||||
sub reexecute {
|
||||
my $self = shift;
|
||||
my(@values) = @_;
|
||||
# untaint the statement and values... (XXX?)
|
||||
foreach my $value (@values) {
|
||||
if (defined($value)) {
|
||||
$value =~ /^(.*)$/os;
|
||||
$value = $1;
|
||||
} else {
|
||||
$value = undef; # used to be '' # XXX ?
|
||||
}
|
||||
}
|
||||
if ($self->handle->execute(@values)) {
|
||||
$self->executed(1);
|
||||
return $self;
|
||||
} else {
|
||||
if ($self->lastError) {
|
||||
$self->raiseError();
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user