Имеем такой код: my $database = "db"; my $hostname = "localhost"; my $port = "3306"; my $user = "user"; my $password = "password"; sub CALC { my ($dbh,$sql,$sth); $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port",$user, $password); $sql = "SELECT count(*),round(sum(a)),round(sum(b))"; $sql .= "FROM qwe"; $sql .= "GROUP BY 'c'"; $sth = $dbh->prepare($sql); $sth->execute; return $sth->fetchrow_array(); $sth->finish; $dbh->disconnect; } sub SELECT { my ($dbh,$sql,$sth,$n,$a,$b); $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port",$user, $password); $sql = "SELECT x,y FROM z"; $sth = $dbh->prepare($sql); $sth->execute; while ( ($x,$y) = $sth->fetchrow() ) { ($n,$a,$b)=CALC; } $sth->finish; $dbh->disconnect; } &SELECT; Получается, что сначала устанавливается соедиинение с базой в процедуре SELECT, выполняется запрос к БД, и по мере возврата значений, для каждой строки выполняется процедура CALC, в которой опять же устанавливается соединение с той же БД и выполняется запрос, что не есть хорошо... Как установить один раз соединение с БД и потом просто делать запросы из разных процедур?
![](/img/p.gif)
Ответ на:
комментарий
от friday
![](/img/p.gif)
![](/img/p.gif)
Ответ на:
комментарий
от Legioner
![](/img/p.gif)
Ответ на:
комментарий
от Warrior_Of_The_Light
![](/img/p.gif)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум perl+dbi, передача dbh в функцию (2008)
- Форум perl DBI mysql вопрос про finish() (2010)
- Форум Неблокирующие запросы к БД (2012)
- Форум perl и mysql (2017)
- Форум Начинаю учить Perl (2014)
- Форум perl+mysql название столбцов таблицы (2010)
- Форум PERL + 2 mysql import (2008)
- Форум Perl mysql (2009)
- Форум Postgresql Perl SQL-injection (2011)
- Форум -->Perl-->DBI-->Oracle--> (2002)