[interchange-cvs] interchange - heins modified lib/Vend/Table/DBI.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Mon Dec 2 17:15:01 2002
User: heins
Date: 2002-12-02 22:14:22 GMT
Modified: lib/Vend/Table DBI.pm
Log:
* Simplify field_settor subroutines with prepared query and placeholders.
Prevents infamous DBD::Pg::do errors.
Revision Changes Path
2.37 +6 -7 interchange/lib/Vend/Table/DBI.pm
rev 2.37, prev_rev 2.36
Index: DBI.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Table/DBI.pm,v
retrieving revision 2.36
retrieving revision 2.37
diff -u -r2.36 -r2.37
--- DBI.pm 27 Oct 2002 04:18:33 -0000 2.36
+++ DBI.pm 2 Dec 2002 22:14:22 -0000 2.37
@@ -1,6 +1,6 @@
# Vend::Table::DBI - Access a table stored in an DBI/DBD database
#
-# $Id: DBI.pm,v 2.36 2002/10/27 04:18:33 mheins Exp $
+# $Id: DBI.pm,v 2.37 2002/12/02 22:14:22 mheins Exp $
#
# Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
#
@@ -20,7 +20,7 @@
# MA 02111-1307 USA.
package Vend::Table::DBI;
-$VERSION = substr(q$Revision: 2.36 $, 10);
+$VERSION = substr(q$Revision: 2.37 $, 10);
use strict;
@@ -1414,13 +1414,12 @@
sub field_settor {
my ($s, $column) = @_;
$s = $s->import_db() if ! defined $s->[$DBI];
+ my $q = "update $s->[$TABLE] SET $column = ? where $s->[$KEY] = ?";
+ my $sth = $s->[$DBI]->prepare($q)
+ or Carp::croak errmsg("Unable to prepare query for field_settor: %s", $q);
return sub {
my ($key, $value) = @_;
- $value = $s->quote($value)
- unless exists $s->[$CONFIG]{NUMERIC}{$column};
- $key = $s->quote($key)
- unless exists $s->[$CONFIG]{NUMERIC}{$s->[$KEY]};
- $s->[$DBI]->do("update $s->[$TABLE] SET $column=$value where $s->[$KEY] = $key");
+ $sth->execute($value, $key);
};
}