🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52186

Re: perl - wyciąganie danych z bazy

#52186
From: MaRc
Date: Fri, 11 Mar 2011 08:29
43 lines
2476 bytes
W dniu 10.03.2011 23:26, Adam Osuchowski pisze:
> MaRc wrote:
>> @users = $sth->fetchall_arrayref();
>
> fetchall_arrayref zwraca referencję czyli skalar, więc w zasadzie powinno
> być $users, a nie @users, ale patrz równiez na uwagę niżej.

to wziąłem z dokumentacji, z przykładu, ale jak zmieniałem na skalar to 
dump nie pokazywał żadnej różnicy. w sumie prawidłowo

> fetchall_* -- zwracją wszystkie wiersze.
> fetchrow_* -- zwracają jeden (kolejny) wiersz.
> *_arrayref -- zwracają referencję do tablicy
> *_hashref -- zwracają referencję do hasza

fetchall_arrayref zwraca referencje do tablicy zawierającej wszystkie 
wiersze z zapytania. skoro moje zapytanie zwraca jedynie jeden wiersz, 
jeśli dobrze to zrozumiałem to wynik powinien być chyba taki:

$users = [1,2,3,4,5]

a dump pokazuje ze jest taki:

@users = ([['1']],[['2']].[['3']],[['4']],[['5']])

lub co jest jednoznaczne

$users = [ [['1']],[['2']].[['3']],[['4']],[['5']] ]

W dokumentacji pisze:
"It returns a reference to an array that contains one reference per row."

Czyli z tego co rozumiem zwraca referencje która zawiera kolena referencje 
po jednej na wiersz. w moim rozumowaniu powinna być "podwójna" referencja, 
czyli w moim przypadku powinno chyba być:

$users = [ ['1'],['2'],['3'],['4'],['5'] ]
i dostep do tego np $users[0]->[0]

a praktycznie wygląda to tak, że jest jedna referencja więcej :(

To jak to jest z tym zwracaniem referencji?
Sorki, za marudzenie ale próbuje to jakoś zrozumieć.
Technical Details
Message-ID: <ilcmhb$1u3$1@pippin.nask.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!not-for-mail
References: <ilbcmq$57j$1@pippin.nask.net.pl> <20110310222645.6b8b4567@polsl.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!not-for-mail
From: MaRc <marc@gmails.com>
Newsgroups: pl.comp.lang.perl
Subject: Re: perl - wyciąganie danych z bazy
Date: Fri, 11 Mar 2011 09:29:31 +0100
Organization: NASK - www.nask.pl
Lines: 45
Message-ID: <ilcmhb$1u3$1@pippin.nask.net.pl>
References: <ilbcmq$57j$1@pippin.nask.net.pl> <20110310222645.6b8b4567@polsl.pl>
NNTP-Posting-Host: 193.59.37.1
Mime-Version: 1.0
X-Trace: pippin.nask.net.pl 1299832171 1987 193.59.37.1 (11 Mar 2011 08:29:31 GMT)
X-Complaints-To: abuse ATSIGN nask.pl
NNTP-Posting-Date: Fri, 11 Mar 2011 08:29:31 +0000 (UTC)
In-Reply-To: <20110310222645.6b8b4567@polsl.pl>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit