Thread: libpq bug? (I guess not)

libpq bug? (I guess not)

From
"Yasuo Ohgaki"
Date:
Hello all,

I need feedback from you!
I would like to make sure no one on this list did not experience following
problem in order to find what's wrong with my system.

OS: RedHat 7.0.1/ja (+ RedHat's glibc,gcc update RPM)
PostgreSQL: 7.0.3 (no additional patches, compiled from source. 32KB page size)
PHP: 4.0.4pl1 as Apache 1.3.19 DSO (These are compiled from source) TCP
connection to PostgreSQL Server.

I believe PHP4 uses libpq, so I would like to know if anyone experiences
following problem with libpq (or others like psql)

A query is executed multiple times, even if it suppose to do it once.

I have a PHP code to execute query like

$db = pg_pconnect('db=my_db host=localhost user=username');
$query = "INSERT INTO new_user (username, email, ............) VALUES ('ABC',
'foo@example.com', ..........);";
pg_exec($db, $query); // Execute query using database connection $db.

in my script. The script seems executing the query 4 times whenever it's called,
since I get 4 newly inserted records everytime execute the script. Usually, PHP4
will not do that. It executes query exactly once as it should be.
(There is no loop, of course. It's a rather simple registration script and have
no loop around pg_exec(). I even checked by printing letters to see if code
around pg_exec() is executed multiple times. PHP does not call print() multiple
times, so the problem should be at the line where pg_exec() is executed)

Does anyone have this problem with libpq? psql? or others?
If you do, please let me know.
(If you know what could be the cause, please let me know too)

Thanks a lot.
--
Yasuo Ohgaki





Re: libpq bug? (I guess not)

From
Tom Lane
Date:
"Yasuo Ohgaki" <yasuo_ohgaki@hotmial.com> writes:
> I have a PHP code to execute query like

> $db = pg_pconnect('db=my_db host=localhost user=username');
> $query = "INSERT INTO new_user (username, email, ............) VALUES ('ABC',
> 'foo@example.com', ..........);";
> pg_exec($db, $query); // Execute query using database connection $db.

> in my script. The script seems executing the query 4 times whenever it's called,
> since I get 4 newly inserted records everytime execute the script.

You could get some more info about what's happening by turning on query
logging in the postmaster (start postmaster with -d2, and be sure NOT to
use -S).  But I'll bet that some way or other, PHP is submitting the
same query multiple times.

I have some recollection that pg_pconnect() doesn't behave very well;
you might need to avoid that in favor of a plain connect.  Check the
archives for discussion of pconnect.

            regards, tom lane

Re: libpq bug? (I guess not)

From
"Mitch Vincent"
Date:
pg_pconnect is very nasty right now (check the PHP bug list [bugs.php.net]
and you'll see many references to it).. They've said that the problems have
been (or are being) fixed for the next release of PHP but from what I
understand the PHP release won't be for a while.

Good luck!

-Mitch
Software development :
You can have it cheap, fast or working. Choose two.

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Yasuo Ohgaki" <yasuo_ohgaki@hotmial.com>
Cc: <pgsql-general@postgresql.org>
Sent: Tuesday, April 03, 2001 2:45 PM
Subject: Re: libpq bug? (I guess not)


> "Yasuo Ohgaki" <yasuo_ohgaki@hotmial.com> writes:
> > I have a PHP code to execute query like
>
> > $db = pg_pconnect('db=my_db host=localhost user=username');
> > $query = "INSERT INTO new_user (username, email, ............) VALUES
('ABC',
> > 'foo@example.com', ..........);";
> > pg_exec($db, $query); // Execute query using database connection $db.
>
> > in my script. The script seems executing the query 4 times whenever it's
called,
> > since I get 4 newly inserted records everytime execute the script.
>
> You could get some more info about what's happening by turning on query
> logging in the postmaster (start postmaster with -d2, and be sure NOT to
> use -S).  But I'll bet that some way or other, PHP is submitting the
> same query multiple times.
>
> I have some recollection that pg_pconnect() doesn't behave very well;
> you might need to avoid that in favor of a plain connect.  Check the
> archives for discussion of pconnect.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>