Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > несколько методов do в DBI


Автор: gcc 30.12.2008, 10:42
есть код:

(середина класса, все остальное работает)
Код

    my $dbh = DBI->connect("DBI:$self->{'se'}->{'db_type'}:database=$self->{'se'}->{'db_name'};
          host=$self->{'se'}->{'db_host'}",$self->{'se'}->{'db_user'},$self->{'se'}->{'db_pass'}, 
      { RaiseError => 1 }) || die $DBI::errstr;  

          $dbh->do(qq{INSERT INTO table0
              (a,b)
              VALUES (?,NOW())},
                         undef, $dd->{'a'});
                           }

           $dbh->do(qq{DELETE FROM table1
                         WHERE a = ?},
                         undef, $dd->{'a'});           }
                         
           $dbh->do(qq{DELETE FROM dtable2
                         WHERE a = ?},
                         undef, $dd->{a});
                           }    
   

при выполнении второго по счету $dbh use Strict пишет: 
Код

Global symbol "$dbh" requires explicit


есть поставить 
Код

my $dbh
 то не определо $dd

что надо делать?

как всегда проблема маленькая, но определить не понятно каким образом надо чтобы решить...  smile 


Автор: arto 30.12.2008, 11:33
на какой строчке у вас $dbi?

Автор: gcc 30.12.2008, 11:36
arto

я ошибся: $dbh 

строка:11

в чем может быть проблема? 
действия я описал, что use Strict ругается...





Автор: gcc 30.12.2008, 12:33
недосмотрелся

строка 8 
Код

}

Автор: ginnie 30.12.2008, 12:34
gcc, а что у Вас за 3 непонятные фигурные скобки, по одной после каждого do()?

P.S. Вы уже сами нашли :о)

P.P.S. Рекомендую для случаев множественного обращения к одному элементу хэша сохранять его в отдельной переменной, это повысит быстродействие.

Код

my $dbinfo = $self->{se};
my $dbh = DBI->connect("DBI:$dbinfo->{db_type}:database=$dbinfo->{db_name}; host=$dbinfo->{db_host}",
                                        $dbinfo->{db_user},$dbinfo->{db_pass}, { RaiseError => 1 } )
                  || die $DBI::errstr;

Автор: gcc 30.12.2008, 12:39
ginnie, недосмотрелся

строка 8 
Код

}

 smile

Добавлено @ 12:43
раньше был у меня удобный редактор kate он подсвечивал эти скобки  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)