Thanks, I'll use that function. I also didn't realize the second select
statement was unnecessary.
Jason
Tod McQuillin wrote:
> On Thu, 3 May 2001, Jason wrote:
>
> > Hi, I want to try and optimize my calls to postgreSQL from PHP. If
> > I only need one field from a select statement, what should I use? I am
> > currently using:
> > $q = pg_Exec("SELECT id FROM article WHERE id=(SELECT MAX(id)
> > FROM article)");
> > $maxid = pg_fetch_array($q, 0);
> > echo "The highest id is ". $maxid[0];
>
> Your select statement is the same thing as simply
>
> SELECT max(id) FROM article
>
> There is no reason that I can see to use the subselect unless you're
> interested in multiple matching rows or other columns (which it appears
> that you are not).
>
> > What can I use besides an array to get a single value? In general, using
> > a single variable always saves more memory than using an array?
>
> Don't worry about saving memory. All your variables are dynamically
> allocated and cleaned up automatically when no longer needed.
>
> To fetch a single value from a select statement, I use a function like
> this one:
>
> function pg_fetch ($conn, $sql) {
> $q = pg_exec($conn, $sql);
> if (pg_numrows($q) > 0) {
> return pg_result($q, 0, 0);
> } else {
> return "";
> }
> }
>
> You can declare the function on a separate file if you'll use it from
> multiple php scripts and then use require_once("functions.php") from each
> script that uses it.
>
> Calling it is as easy as:
>
> $maxid = pg_fetch($conn, "SELECT max(id) FROM article");
>
> Hope this helps.
> --
> Tod McQuillin