Forum Webscript.Ru

Программирование => Perl => Тема начата: от 31 Мая 2001, 12:01:00

Название: Помогите с MySQL
Отправлено: от 31 Мая 2001, 12:01:00
Неудобно даже писать, но помогите написать программу на perl, которая вернула бы значение столбца crontime из запроса

SELECT id,crontime FROM autosend where id = 1

На PHP я написал бы минуты за 3, но на perl ?

Заранее Списибо.
Название: Помогите с MySQL
Отправлено: Chs от 31 Мая 2001, 14:08:35
Цитировать
Microname (31-05-2001 12:01):
Неудобно даже писать, но помогите написать программу на perl, которая вернула бы значение столбца crontime из запроса

SELECT id,crontime FROM autosend where id = 1

На PHP я написал бы минуты за 3, но на perl ?

Заранее Списибо.
Например, так:
#!/usr/bin/perl
use DBI;
use strict;

my $db_host = "localhost";
my $db_name = "database";
my $db_user = "user";
my $db_pass = "password";

my $dbh = DBI-> connect("DBI:mysql:database=$db_name;host=$db_host",$db_user,$db_pass,{RaiseError=>1}) || die($DBI::errstr);

my $cmd = "select id,crontime from autosend where id = ?";

my $sth = $dbh->prepare($cmd) || die($DBI::errstr);
$sth->execute(\'1\') || die($DBI::errstr);

if (my $hp = $sth -> fetchrow_hashref())
{
print $$hp{\'id\'},$$hp{\'crontime\'};
}

$sth->finish();
$dbh->disconnect();
Название: Помогите с MySQL
Отправлено: tankisti от 26 Апреля 2004, 08:01:37
Объясните, плз. конструкцию $$hp. В книжках не встречалась...
Название: Помогите с MySQL
Отправлено: NeoNox от 26 Апреля 2004, 11:19:23
Читать в направлении ссылок
$test = "123";
$test_ref = \\$test;
print $$test_ref;
> 123
Название: Помогите с MySQL
Отправлено: tankisti от 26 Апреля 2004, 11:23:46
О! Есть пища для ума! Ща полазию!
сеньк!
Название: Помогите с MySQL
Отправлено: commander от 26 Апреля 2004, 17:38:16
а лучше так:
------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use SQLayer;
my $D=SQLayer->new(database=>\'DBI:mysql:database=phorum;host=localhost;port=3306\',user =>\'user\',passowrd =>\'somepass\');
my $Data=$D->row_hash("SELECT id, crontime FROM autosend where id = 1");
my $NI=0;
while ($Data->[$NI])
{
print "".$Data->[$NI]{\'id\'}.",".$Data->[$NI]{\'crontime\'}."";
$NI++
}
------------------------------------------------------------
на много элегантнее... :)
Название: Помогите с MySQL
Отправлено: Chs от 26 Апреля 2004, 17:52:34
Цитировать
на много элегантнее...

На вкус и цвет....:)))
Название: Помогите с MySQL
Отправлено: commander от 26 Апреля 2004, 17:55:11
ой... в конец код ещё дисконнект надо добавить... :
undef $D;