]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 279544: Bug.pm: Eliminate deprecated Bugzilla::DB routines
authortravis%sedsystems.ca <>
Sat, 5 Feb 2005 00:04:57 +0000 (00:04 +0000)
committertravis%sedsystems.ca <>
Sat, 5 Feb 2005 00:04:57 +0000 (00:04 +0000)
Patch by Max Kanat-Alexander <mkanat@kerio.com>  r=wurblzap  a=justdave

Bugzilla/Bug.pm

index 8f08d8c2569c6359ea7d8f66f2afc7a146c383c2..60083c887dafdac3ff5e3e51f0c3fba4faffc335 100755 (executable)
@@ -35,6 +35,7 @@ use vars qw($unconfirmedstate $legal_keywords @legal_platform
 
 use CGI::Carp qw(fatalsToBrowser);
 
+use Bugzilla;
 use Bugzilla::Attachment;
 use Bugzilla::Config;
 use Bugzilla::Constants;
@@ -109,6 +110,7 @@ sub new {
 sub initBug  {
   my $self = shift();
   my ($bug_id, $user_id) = (@_);
+  my $dbh = Bugzilla->dbh;
 
   $bug_id = trim($bug_id);
 
@@ -150,16 +152,18 @@ sub initBug  {
       estimated_time, remaining_time, DATE_FORMAT(deadline,'%Y-%m-%d')
     from bugs left join votes using(bug_id),
       classifications, products, components
-    where bugs.bug_id = $bug_id
+    WHERE bugs.bug_id = ?
       AND classifications.id = products.classification_id
       AND products.id = bugs.product_id
       AND components.id = bugs.component_id
     group by bugs.bug_id";
 
-  &::SendSQL($query);
-  my @row = ();
+  my $bug_sth = $dbh->prepare($query);
+  $bug_sth->execute($bug_id);
+  my @row;
 
-  if ((@row = &::FetchSQLData()) && $self->{'who'}->can_see_bug($bug_id)) {
+  if ((@row = $bug_sth->fetchrow_array()) 
+      && $self->{'who'}->can_see_bug($bug_id)) {
     my $count = 0;
     my %fields;
     foreach my $field ("bug_id", "alias", "classification_id", "classification",
@@ -205,17 +209,16 @@ sub initBug  {
   }
 
   if (@::legal_keywords) {
-    &::SendSQL("SELECT keyworddefs.name 
+    # Get all entries and make them an array.
+    my $list_ref = $dbh->selectcol_arrayref(
+           "SELECT keyworddefs.name
               FROM keyworddefs, keywords
-             WHERE keywords.bug_id = $bug_id 
+             WHERE keywords.bug_id = ?
                AND keyworddefs.id = keywords.keywordid
-          ORDER BY keyworddefs.name");
-    my @list;
-    while (&::MoreSQLData()) {
-        push(@list, &::FetchOneColumn());
-    }
-    if (@list) {
-      $self->{'keywords'} = join(', ', @list);
+          ORDER BY keyworddefs.name",
+        undef, ($bug_id));
+    if ($list_ref) {
+      $self->{'keywords'} = join(', ', @$list_ref);
     }
   }
 
@@ -329,6 +332,7 @@ sub groups {
 
     return $self->{'groups'} if exists $self->{'groups'};
 
+    my $dbh = Bugzilla->dbh;
     my @groups;
 
     # Some of this stuff needs to go into Bugzilla::User
@@ -338,26 +342,28 @@ sub groups {
     # user_group_map record putting the user in that group.
     # The LEFT JOINs are checking for record existence.
     #
-    &::SendSQL("SELECT DISTINCT groups.id, name, description," .
+    my $sth = $dbh->prepare(
+             "SELECT DISTINCT groups.id, name, description," .
              " bug_group_map.group_id IS NOT NULL," .
              " user_group_map.group_id IS NOT NULL," .
              " isactive, membercontrol, othercontrol" .
              " FROM groups" . 
              " LEFT JOIN bug_group_map" .
              " ON bug_group_map.group_id = groups.id" .
-             " AND bug_id = $self->{'bug_id'}" .
+             " AND bug_id = ?" .
              " LEFT JOIN user_group_map" .
              " ON user_group_map.group_id = groups.id" .
-             " AND user_id = $::userid" .
+             " AND user_id = ?" .
              " AND isbless = 0" .
              " LEFT JOIN group_control_map" .
              " ON group_control_map.group_id = groups.id" .
-             " AND group_control_map.product_id = " . $self->{'product_id'} .
+             " AND group_control_map.product_id = ? " .
              " WHERE isbuggroup = 1");
+    $sth->execute($self->{'bug_id'}, Bugzilla->user->id,
+                  $self->{'product_id'});
 
-    while (&::MoreSQLData()) {
-        my ($groupid, $name, $description, $ison, $ingroup, $isactive,
-            $membercontrol, $othercontrol) = &::FetchSQLData();
+    while (my ($groupid, $name, $description, $ison, $ingroup, $isactive,
+            $membercontrol, $othercontrol) = $sth->fetchrow_array()) {
 
         $membercontrol ||= 0;
 
@@ -392,8 +398,6 @@ sub user {
     my $self = shift;
     return $self->{'user'} if exists $self->{'user'};
 
-    use Bugzilla;
-
     my @movers = map { trim $_ } split(",", Param("movers"));
     my $canmove = Param("move-enabled") && Bugzilla->user->id && 
                   (lsearch(\@movers, Bugzilla->user->login) != -1);
@@ -483,18 +487,17 @@ sub choices {
 }
 
 sub EmitDependList {
-  my ($myfield, $targetfield, $bug_id) = (@_);
-  my @list;
-  &::SendSQL("select dependencies.$targetfield, bugs.bug_status
-           from dependencies, bugs
-           where dependencies.$myfield = $bug_id
-             and bugs.bug_id = dependencies.$targetfield
-           order by dependencies.$targetfield");
-  while (&::MoreSQLData()) {
-    my ($i, $stat) = (&::FetchSQLData());
-    push @list, $i;
-  }
-  return @list;
+    my ($myfield, $targetfield, $bug_id) = (@_);
+    my $dbh = Bugzilla->dbh;
+    my $list_ref =
+        $dbh->selectcol_arrayref(
+          "SELECT dependencies.$targetfield
+             FROM dependencies, bugs
+            WHERE dependencies.$myfield = ?
+              AND bugs.bug_id = dependencies.$targetfield
+         ORDER BY dependencies.$targetfield",
+         undef, ($bug_id));
+    return @$list_ref;
 }
 
 sub ValidateTime {