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
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html