Forum Webscript.Ru

Программирование => Perl => Тема начата: mookee от 03 Октября 2007, 09:25:46

Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 09:25:46
Доброго времени суток. Пишу скрипт для сайта, данные хранятся в базе MySQL. Посоветуйте, как организовать соединение с базой. Мне кажется это неправильно соединение и отключение с базой включать в каждую функцию?
например:

sub Select {

my $dbh = DBI->connect(...);
my $sth = $dbh->prepare(...);
$sth->execute();
...

$sth->finish();
$dbh->disconnect();

return ...;
}
 
Подскажите более элегантный способ, как это устроено у вас.
P.S. не судите строго, я новичок.
Название: Соединение с базой
Отправлено: commander от 03 Октября 2007, 11:00:44
при начале работы делаешь коннект и конце - дисконект (что кстати не обязательно в большинстве случаях)
Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 12:49:57
2commander
ну эт понятно что в начале коннект, а в конце дисконнект, но вопрос про то как этот вызов делать, не является ли это лишней нагрузкой, так как если вызывать несколько функций и в каждой делать коннект и дискон-т? Может существует какой нить более удобный способ?
Название: Соединение с базой
Отправлено: commander от 03 Октября 2007, 15:43:23
mookee
ты функцию от куда вызываешь?
Название: Соединение с базой
Отправлено: frenky от 03 Октября 2007, 15:57:52
не нужно прописывать в каждой функции коннект и дисконнект сделай одну функцию на коннект и  второую на дисконнект.
В начале работы скрипта конекться а в конце дисконектться
Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 15:58:30
Есть пакет, в котором есть некоторое кол-во функций работающих с базой (выборка, запись и т.п.), и вот в каждой функции я соединяюсь с базой и отключаюсь в конце. В основном скрипте загружаю пакет и потом вызываю функции.
Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 15:59:50
frenky
можно пример?
Название: Соединение с базой
Отправлено: commander от 03 Октября 2007, 16:20:24
mookee
блин...

#!/usr/bin/perl -w
use strict;

   connect;

   my $var=Select("ha-ha-ha");

   disconnect;

print "Content-type: text/html\\n\\n";
print "Hello world $var!\\n";


sub connect
{
 ......
    return 1;
}
sub disconnect
{
 ......
    return 1;
}

sub Select {

return ...;
}
Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 16:29:12
tnx
Название: Соединение с базой
Отправлено: commander от 03 Октября 2007, 16:33:01
mookee
а вообще лучше все это в модуль запихать... и не париццо... connect - будет конструктором... а disconnect - диструктором...
Название: Соединение с базой
Отправлено: mookee от 03 Октября 2007, 21:08:22
ok надо подумать как это сделать
Название: Соединение с базой
Отправлено: commander от 04 Октября 2007, 09:40:58
mookee
use SQLayer;

там это уже все сделано...
Название: Соединение с базой
Отправлено: mookee от 05 Октября 2007, 07:21:26
спасибо, будем посмотреть :)