Консультация № 82398
13.04.2007, 14:50
0.00 руб.
0 3 3
Доброе время суток! Подскажите как правильно сделать. Есть вывод из бд (см. код), как его сохранить в фаил?

Приложение:
$sth = $dbh->prepare(q{SELECT id,ts,ip,fromHandle,handle,message from logs}) or die "Ошибка! Невозможно подготовить запрос:".$dbh->errstr. "";$sth->execute or die "Ошибка! Невозможно выполнить запрос:".$dbh->errstr. "";while ($aref = $sth->fetchrow_arrayref){print "$aref->[0] $aref->[1] $aref->[2] $aref->[3] $aref->[4] $aref->[5]" . "";$sth->finish;

Обсуждение

Неизвестный
13.04.2007, 15:12
общий
это ответ
Здравствуйте, Bichkov Nikola!

Собственно, а не проще такой вариант?

$sthl = $dbh->query("id,ts,ip,fromHandle,handle,message from logs");

while (%row = $sthl->fetchhash()){
$id=$row({"id"};
$ts=$row{"ts"} ;
$ip=$row{"ip"} и тд.
} получили значения переменных и делаем с ними, что хотим.

Ну, как бы без "prepare"? Ведь Вы исполняете запрос select, его можно заранее не готовить, учитывая, что он простой?

С уважением,
Twerdetz
Неизвестный
13.04.2007, 15:13
общий
это ответ
Здравствуйте, Bichkov Nikola!
открываете файл на запись <b>open (FILE, ">filename");</b>
оператором print выводите в соотв. дескриптор <b>print FILE "........";</b> в теле цикла <i>while</i>
закрываете. <b>close FILE;</b>
вот и все :)
Неизвестный
15.04.2007, 04:20
общий
это ответ
Здравствуйте, Bichkov Nikola!

1.
===
26 while ($aref = $sth->fetchrow_arrayref){
===
тут вместо = нужно ==

2.
===
27open (file, ">file.txt")
or die ("Ошибка! Невозможно открыть фаил file.txt")
===
тут после die поставьте ;

3.
===
print "$aref->[0] \t $aref->[1] \t $aref->[2] \t $aref->[3] \t $aref->[4] \t $aref->[5]" . "\n";
===
вы забыли сказать что пишете это в файл
тоесть так
print file "$aref->[0] \t $aref->[1] \t $aref->[2] \t $aref->[3] \t $aref->[4] \t $aref->[5]" . "\n";
Форма ответа