M
Mike Solomon
The following bit of my script passes variables to a subroutine for
use as placeholders to update a database using DBI
As I have written it it works for 2 placeholders but I want it to work
for any amount
Any ideas
#update Address
my $sql = qq {
UPDATE ADDRESS
SET Address_Line_1 = ?,
Address_Line_2 = ?,
State_Province = '$exData{$id}{county}',
Country = '$exData{$id}{country}',
Zip_Code = '$exData{$id}{postcode}',
City = '$exData{$id}{city}'
WHERE Client_Id = '$Client_Id'
AND Address_Id = 0
AND Address_Line_1 is NULL
};
my $error = SqlExecuteP($sql, $exData{$id}{address1},
$exData{$id}{address2});
sub SqlExecuteP {
#Execute Sql or write error to errr log & return
#expect sql statement
my ($sql , $p1, $p2) = @_;
$g_data = $g_dbh->prepare($sql);
my $rows = $g_data->execute($p1, $p2);
#check for error - if error print error & exit
my $sqlError = DBI::errstr;
if ( $sqlError ) {
$sqlError = $sql . "\n" . $sqlError;
return $sqlError;
}
#OEO = 0 rows
$rows =~ s/0E0/0/;
return $rows;
} #end SqlExecuteP
#-----------------------------------------------------------------------
use as placeholders to update a database using DBI
As I have written it it works for 2 placeholders but I want it to work
for any amount
Any ideas
#update Address
my $sql = qq {
UPDATE ADDRESS
SET Address_Line_1 = ?,
Address_Line_2 = ?,
State_Province = '$exData{$id}{county}',
Country = '$exData{$id}{country}',
Zip_Code = '$exData{$id}{postcode}',
City = '$exData{$id}{city}'
WHERE Client_Id = '$Client_Id'
AND Address_Id = 0
AND Address_Line_1 is NULL
};
my $error = SqlExecuteP($sql, $exData{$id}{address1},
$exData{$id}{address2});
sub SqlExecuteP {
#Execute Sql or write error to errr log & return
#expect sql statement
my ($sql , $p1, $p2) = @_;
$g_data = $g_dbh->prepare($sql);
my $rows = $g_data->execute($p1, $p2);
#check for error - if error print error & exit
my $sqlError = DBI::errstr;
if ( $sqlError ) {
$sqlError = $sql . "\n" . $sqlError;
return $sqlError;
}
#OEO = 0 rows
$rows =~ s/0E0/0/;
return $rows;
} #end SqlExecuteP
#-----------------------------------------------------------------------