23.03.2006, 19:28
|
|
|
Местный
Регистрация: 26.02.2004
Сообщений: 124
|
RE: Как проверить установлено ли DBI?
Вот кусочек кода из моего скрипта рассылки, который работает с базой данных.
Код 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/usr/bin/perl -w
# Coded by PoizOn poizon.net.ru
# MT-Subscriber
use strict;
use DBI;
############################################
#### Параметры подключения к БД ############
my $user="root";
my $passwd="";
my $database="test";
############################################
#### Подключаемся к БД #####################
my $dbh=DBI->connect("DBI:mysql:host=localhost;database=$database",$user,$passwd,
{ RaiseError =>1});
############################################
#### Определяем текущую дату ###############
my $time=time()-86400;
# 0 1 2 3 4 5 6 7 8
my (undef,undef,undef,$mday,$mon,$year,undef) =
localtime($time);
$year+=1900;
$mon+=1;
$mon=length($mon)>1 ? $mon : "0$mon";
$mday=length($mday)>1 ? $mday : "0$mday";
############################################
#### Формируем и отправляем запрос #########
my $sql=qq(SELECT entry_id,entry_title,entry_text,entry_created_on
FROM mt_entry WHERE entry_created_on LIKE '$year-$mon-$mday%');
my $sth=$dbh->prepare($sql);
$sth->execute();
while($data=$sth->fetchrow_hashref()) {
$id=$data->{'entry_id'};
$entry{$id}=$data;
}
$sth->finish();
###########################################
#### Формируем второй запрос для $url ######
$sql=qq(SELECT fileinfo_url
FROM mt_fileinfo
WHERE fileinfo_entry_id= ?);
$sth=$dbh->prepare($sql);
foreach $id(keys %entry) {
$sth->execute($id);
$data=$sth->fetchrow_hashref;
$entry{$id}->{'url'}=$myurl . $data->{'fileinfo_url'};
}
$sth->finish();
############################################
#### Формируем файл с рассылкой ############
$sql=qq(SELECT email,id FROM mt_subscriberz);
$sth=$dbh->prepare($sql);
$sth->execute();
while($data=$sth->fetchrow_hashref()) {
$maillist{$data->{'email'}}=$data->{'id'};
}
$sth->finish();
|
|
|
|