# Suite 330, Boston, MA 02111-1307 USA
use strict;
-use C4::Database;
+use C4::Context;
require Exporter;
=cut
@ISA = qw(Exporter);
-@EXPORT = qw(&listsubjects &updatesub &shiftgroup &deletedbib &undeletebib
-&updatetype);
+@EXPORT = qw(&listsubjects &shiftgroup &deletedbib &undeletebib
+&updatetype &logaction);
=item listsubjects
# just return a list of strings.
sub listsubjects {
my ($sub,$num,$offset)=@_;
- my $dbh=C4Connect;
- my $query="Select * from bibliosubject where subject like '$sub%' group by subject";
+ my $dbh = C4::Context->dbh;
+ my $query="Select * from bibliosubject where subject like ? group by subject";
+ my @bind = ("$sub%");
# FIXME - Make $num and $offset optional.
# If $num was given, make sure $offset was, too.
if ($num != 0){
- $query.=" limit $offset,$num";
+ $query.=" limit ?,?";
+ push(@bind,$offset,$num);
}
my $sth=$dbh->prepare($query);
# print $query;
- $sth->execute;
+ $sth->execute(@bind);
my @results;
my $i=0;
while (my $data=$sth->fetchrow_hashref){
$i++;
}
$sth->finish;
- $dbh->disconnect;
return($i,\@results);
}
-=item updatesub
-
- &updatesub($newsubject, $oldsubject);
-
-Renames a subject from C<$oldsubject> to C<$newsubject> in the
-bibliosubject table of the Koha database.
-
-=cut
-#'
-sub updatesub{
- my ($sub,$oldsub)=@_;
- my $dbh=C4Connect;
- $sub=$dbh->quote($sub);
- $oldsub=$dbh->quote($oldsub);
- my $query="update bibliosubject set subject=$sub where subject=$oldsub";
- my $sth=$dbh->prepare($query);
- $sth->execute;
- $sth->finish;
- $dbh->disconnect;
-}
-
=item shiftgroup
&shiftgroup($biblionumber, $biblioitemnumber);
=cut
#'
sub shiftgroup{
- my ($bib,$bi)=@_;
- my $dbh=C4Connect;
- my $query="update biblioitems set biblionumber=$bib where biblioitemnumber=$bi";
- my $sth=$dbh->prepare($query);
- $sth->execute;
+ my ($biblionumber,$bi)=@_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("update biblioitems set biblionumber=? where biblioitemnumber=?");
+ $sth->execute($biblionumber,$bi);
$sth->finish;
- $query="update items set biblionumber=$bib where biblioitemnumber=$bi";
- $sth=$dbh->prepare($query);
- $sth->execute;
+ $sth=$dbh->prepare("update items set biblionumber=? where biblioitemnumber=?");
+ $sth->execute($biblionumber,$bi);
$sth->finish;
- $dbh->disconnect;
}
=item deletedbib
#'
sub deletedbib{
my ($title)=@_;
- my $dbh=C4Connect;
- my $query="Select * from deletedbiblio where title like '$title%' order by title";
- my $sth=$dbh->prepare($query);
- $sth->execute;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("Select * from deletedbiblio where title like ? order by title");
+ $sth->execute("$title%");
my @results;
my $i=0;
while (my $data=$sth->fetchrow_hashref){
$i++;
}
$sth->finish;
- $dbh->disconnect;
return($i,\@results);
}
=cut
#'
sub undeletebib{
- my ($bib)=@_;
- my $dbh=C4Connect;
- my $query="select * from deletedbiblio where biblionumber=$bib";
- my $sth=$dbh->prepare($query);
- $sth->execute;
+ my ($biblionumber)=@_;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("select * from deletedbiblio where biblionumber=?");
+ $sth->execute($biblionumber);
if (my @data=$sth->fetchrow_array){
$sth->finish;
# FIXME - Doesn't this keep the same biblionumber? Isn't this
# forbidden by the definition of 'biblio'? Or doesn't it matter?
- $query="Insert into biblio values (";
- foreach my $temp (@data){
- $temp=~ s/\'/\\\'/g;
- $query=$query."'$temp',";
- }
+ my $query="INSERT INTO biblio VALUES (";
+ my $count = @data;
+ $query .= ("?," x $count);
$query=~ s/\,$/\)/;
# print $query;
$sth=$dbh->prepare($query);
- $sth->execute;
+ $sth->execute(@data);
$sth->finish;
}
- $query="Delete from deletedbiblio where biblionumber=$bib";
- $sth=$dbh->prepare($query);
- $sth->execute;
+ $sth=$dbh->prepare("DELETE FROM deletedbiblio WHERE biblionumber=?");
+ $sth->execute($biblionumber);
$sth->finish;
- $dbh->disconnect;
}
=item updatetype
#'
sub updatetype{
my ($bi,$type)=@_;
- my $dbh=C4Connect;
- # FIXME - Use $dbh->do(...);
- my $sth=$dbh->prepare("Update biblioitems set itemtype='$type' where biblioitemnumber=$bi");
- $sth->execute;
+ my $dbh = C4::Context->dbh;
+ my $sth=$dbh->prepare("Update biblioitems set itemtype=? where biblioitemnumber=?");
+ $sth->execute($type,$bi);
$sth->finish;
- $dbh->disconnect;
}
END { } # module clean-up code here (global destructor)
Koha Developement team <info@koha.org>
-=head1 SEE ALSO
-
-L<perl>.
-
=cut