# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
-use C4::Database;
+#use warnings; FIXME - Bug 2505
+use C4::Context;
require Exporter;
=head1 FUNCTIONS
-=over 2
-
=cut
@ISA = qw(Exporter);
-@EXPORT = qw(&listsubjects &updatesub &shiftgroup &deletedbib &undeletebib
-&updatetype);
+@EXPORT = qw(&listsubjects &shiftgroup &deletedbib &undeletebib
+&updatetype &logaction);
-=item listsubjects
+=head2 listsubjects
($count, $results) = &listsubjects($subject, $n, $offset);
C<$n> is 0, it will return all matching subjects.
=cut
+
#'
# FIXME - This API is bogus. The way it's currently used, it should
# 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
+=head2 shiftgroup
&shiftgroup($biblionumber, $biblioitemnumber);
C<$biblionumber> is the biblionumber to associate it with.
=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
+=head2 deletedbib
($count, $results) = &deletedbib($title);
is the number of elements in C<$results>.
=cut
+
#'
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);
}
-=item undeletebib
+=head2 undeletebib
&undeletebib($biblionumber);
moves its entry to the biblio table.
=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
+=head2 updatetype
&updatetype($biblioitemnumber, $itemtype);
C<$itemtype>.
=cut
+
#'
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)
1;
__END__
-=back
-
=head1 AUTHOR
-Koha Developement team <info@koha.org>
-
-=head1 SEE ALSO
-
-L<perl>.
+Koha Development Team <http://koha-community.org/>
=cut