Forum Webscript.Ru

Программирование => Perl => Тема начата: Dema от 11 Апреля 2003, 21:28:11

Название: есть трабла со скриптом
Отправлено: Dema от 11 Апреля 2003, 21:28:11
все тот же скрипт:
#!/usr/bin/perl
use CGI;
print "Content-Type:text/html\\n\\n";
print "

test


\\n";
use dbi;
use Mysql;
$dbh = Mysql->connect($localhost, $ddd, $root);
$dbh->selectdb("ddd");
$sth = $dbh->query("select * from records");
@arr = $sth->FetchRow;
$count = $arr; # Figure out how many elements.
for ($i=0;$i<=$count;$i++)
{
print "br".$arr[$#i];
}
выдает только последнюю запись таблицы, а должен весь столбец, может подскажете в чем дело?
Название: есть трабла со скриптом
Отправлено: Chs от 11 Апреля 2003, 22:36:51
Цитировать

@arr = $sth->FetchRow;
$count = $arr; # Figure out how many elements.
for ($i=0;$i<=$count;$i++)
{
print "br".$arr[$#i];
}
выдает только последнюю запись таблицы, а должен весь столбец...

лол:)))
perldoc DBI

А вообще fetchrow неплохо бы в цикле говорить, поскольку
The typical method call sequence for a "SELECT" statement is:

  prepare,
    execute, fetch, fetch, ...
    execute, fetch, fetch, ...
    execute, fetch, fetch, ...

for example:

  $sth = $dbh->prepare("SELECT foo, bar FROM table WHERE baz=?");

  $sth->execute( $baz );

  while ( @row = $sth->fetchrow_array ) {
    print "@row\\n";
  }

Читайте доку бо она рулез.:)
Название: есть трабла со скриптом
Отправлено: NCRangeR от 11 Апреля 2003, 23:14:31
Dema
ИМХО проще использовать selectall_arrayref и ему подобные..
оно хоть и подольше выполняется, зато результат наглядненько в массиве выдаёт ;)