The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"perl, два запроса к базе в рамках одного подключения"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

"perl, два запроса к базе в рамках одного подключения" +/
Сообщение от CombatPenguinemail (ok), 09-Окт-06, 14:44 
Имеем такой код:

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, в которой опять же
устанавливается соединение с той же БД и выполняется запрос,
что не есть хорошо...
Как установить один раз соединение с БД и потом просто делать запросы
из разных процедур?

Ответить | Правка | Cообщить модератору

Оглавление
perl, два запроса к базе в рамках одного подключения, CombatPenguin, 09-Окт-06, 14:44  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру