Начал изучать Perl и необходимо получать данные из базы MySQL, использую perl 5.10.00 и mysql 5.0.51a, все установлено из репозиториев.
Код: Выделить всё
my @drivers = DBI->available_drivers;
print " Доступны следующие драйверы :\n" . join("\n",@drivers);
Дает следующий вывод: Доступны следующие драйверы : DBM ExampleP File Gofer Proxy Sponge mysql.
Из чего я заключаю, что драйвер для MySQL доступен.
Код по получению данных:
Код: Выделить всё
use DBI;
my $dbtype = 'mysql';
my $dbhost = 'localhost';
my $dbname = 'data';
my $dbuser = 'user';
my $dbpasswd = 'passwd';
my $dbh = DBI->connect("DBI:$dbtype:$dbname", $dbuser, $dbpasswd,) or die('Error connecting to database');
my $sth = $dbh->prepare("SELECT id FROM zakaz WHERE number = '$n' AND YEAR(in_date) = '$y' AND MONTH(in_date) = '$m'");
$sth->execute();
while (my @row = $sth->fetchrow_array) { print qw/$row[0]/;}
$sth->finish();
$dbh->disconect;
Результат нулевой, на экран ничего не выводится. Страно еще то, что при выключенном сервере MySQL я не получаю ожидаемой ошибки коннекта.
При добавлении в код print $dbh, $sth при выключенном сервере ничего не выводится, при включенном - DBI::db=HASH(0x9661838)DBI::st=HASH(0x9661a68).
В чем проблема?
Спасибо.