J'ai une requête qui réside dans plusieurs méthodes dont chacune (requête) peut contenir plusieurs paramètres. J'essaye de réduire la taille de fichier et le nombre de lignes pour le rendre plus maintenable. Ci-dessous un tel événement:Comment rendre plusieurs requêtes de base de données plus efficaces en Perl?
$sql_update = qq { UPDATE database.table
SET column = 'UPDATE!'
WHERE id = ?
};
$sth_update = $dbh->prepare($sql_update);
if ($dbh->err) {
my $error = "Could not prepare statement. Error: ". $dbh->errstr ." Exiting at line " . __LINE__;
print "$error\n";
die;
}
$sth_rnupdate->execute($parameter);
if ($dbh->err) {
my $error = "Could not execute statement. Error: ". $dbh->errstr ." Exiting at line " . __LINE__;
print "$error\n";
die;
}
Ceci est juste un exemple, cependant, il existe plusieurs autres exemples choisis qui contiennent juste l'un des paramètres passés dans, mais il y a aussi quelques-uns avec deux ou plusieurs paramètres. Je suppose que je me demandais juste serait-il possible d'encapsuler tout cela dans une fonction/méthode, passer dans un tableau de paramètres, comment les paramètres seraient peuplés dans la fonction execute()?
Si cela était possible, je pourrais écrire une méthode que vous simplement passer dans la requête SQL et les paramètres et récupérer une référence aux enregistrements récupérés. Est-ce que cela semble sûr du tout?
Cela semble très bénéfique. Est-ce que le module Class :: DBI est livré avec le noyau perl? (pour unix) –
Non. Vous devrez l'installer. Taper "install Class :: DBI" et répondre avec un 'y' à toutes les dépendances dans un shell CPAN l'installera pour vous. –