package SQL_Helpers;
my %sql_statements = (
SELECT_USER_INFO => q/SELECT userid, username, password FROM user_table WHERE userid=?/,
UPDATE_USER_INFO => q/UPDATE user_table set password=? WHERE userid=?/,
...yada yada yada...
);
sub sql {
my ( $dbh, $sql, @data ) = @_;
return undef if !exists( $sql_statements{ $sql } );
my $sth = $dbh->prepare( $sql_statements{ $sql } )
or die DBI::errstr;
$sth->execute( @data ) or die DBI::errstr;
return $sth;
}
...
package MyPackage;
use SQL_Helpers qw/:all/;
my $sth = sql( $dbh, UPDATE_USER_INFO, $password, $userid );
####
my $sth = $sql_helper->UPDATE_USER_INFO( $password, $userid );
####
Example SQL: UPDATE user_table SET password=?password WHERE userid=?userid
Example call to sql:
my $sth = $sql_helper->UPDATE_USER_DATA(
{ userid=>$userid,
password=>$password }
);