Re: PHP and PostgreSQL

Поиск
Список
Период
Сортировка
От Adam Haberlach
Тема Re: PHP and PostgreSQL
Дата
Msg-id 20010107194001.B16787@newsnipple.com
обсуждение исходный текст
Ответ на Re: PHP and PostgreSQL  (GH <grasshacker@over-yonder.net>)
Список pgsql-general
On Sat, Jan 06, 2001 at 11:52:51AM -0600, GH wrote:
> On Sat, Jan 06, 2001 at 11:22:07AM -0600, some SMTP stream spewed forth:
> > On Fri, Jan 05, 2001 at 10:07:28PM -0800, some SMTP stream spewed forth:
> > > On Fri, Jan 05, 2001 at 11:17:29PM +0100, Uro Gruber wrote:
> > > > Hi!
> > > >
> > > > I have some questions about coding in php with postgre.
> > > >
> > > > Here is my code
> > > >
> > > > $qu = pg_exec ($db_conn, "SELECT * FROM clients ORDER BY username");
> > > > $row = 0; // postgres needs a row counter other dbs might not
> > > > while ($data = @pg_fetch_object ($qu, $row)) {
> > > > echo $data->username." (";
> > > > echo $data->password ."): ";
> > > > echo $data->client_id."<BR>";
> > > > $row++;
> > > > }
> > > >
> > > > When i execute this i get 3 records (in DB is also 3 records), if i
> > > > delete @ before pg_fetch_object i get an error:
> > > >
> > > > "Unable to jump to row 3 on PostgreSQL result index 4"
> > > >
> > > > I understand what's wrong and i know why is that @.
> > > >
> > > > What i do want to know is, if there is something wrong with this
> > > > function or am i doing something wrong. I don't like that kind of
> > > > errors. How can i stop before the end.
> > >
> > $nr=pg_numrows($qu);
> > for($i=0; $i < $nr; $i++)
> >
> (And I wasn't even drunk at type-time.)
>        (adds)
> > This add another variable in exchange for saving an obscene amount of
> > time counting rows on every iteration.
> >

    I've always assumed that the number of rows is known by the result set
so pg_numrows() is merely a (arguably) trivial lookup.  Now that I've
looked at the code, that assumption looks correct.  The overhead seems
to be one PHP function call and two C function calls.  No counting,
no loops, no obscenities.  Unless PQntuples() is really stupid, but
I'm not going to wander through another source tree tonight.

--
Adam Haberlach            |A cat spends her life conflicted between a
adam@newsnipple.com       |deep, passionate, and profound desire for
http://www.newsnipple.com |fish and an equally deep, passionate, and
'88 EX500                 |profound desire to avoid getting wet.

В списке pgsql-general по дате отправления:

Предыдущее
От: Adam Haberlach
Дата:
Сообщение: Re: Warning: PostgresSQL query failed????`
Следующее
От: Adam Haberlach
Дата:
Сообщение: Re: PHP and PostgreSQL