Home > Archive > PHP with PostgreSQL > September 2005 > pg_fetch_object









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author pg_fetch_object
John DeSoi

2005-09-23, 8:24 pm

I'm using PHP 5.0.4, PostgreSQL 8.0.2.

Docs say (http://www.php.net/manual/en/functi...etch-object.php):

object pg_fetch_object ( resource result [, int row [, string
class_name [, array params]]] )

pg_fetch_object() returns an object with properties that correspond
to the fetched row's field names. It can optionally instantiate an
object of a specific class, and pass parameters to that class's
constructor.

I'm passing a class name string as the third parameter, but I only
get back a stdClass object. I also added an array of params as the
4th parameter to pass to the constructor, but it does not appear to
be called.

Has anyone successfully used this to create a class other than stdClass?

Thanks,


John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL


---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Michael Fuhr

2005-09-24, 3:23 am

On Fri, Sep 23, 2005 at 08:55:44PM -0400, John DeSoi wrote:
> pg_fetch_object() returns an object with properties that correspond
> to the fetched row's field names. It can optionally instantiate an
> object of a specific class, and pass parameters to that class's
> constructor.
>
> I'm passing a class name string as the third parameter, but I only
> get back a stdClass object. I also added an array of params as the
> 4th parameter to pass to the constructor, but it does not appear to
> be called.
>
> Has anyone successfully used this to create a class other than stdClass?


Works here with PHP 5.0.4 and PostgreSQL 8.0.3:

class Foo {
function Foo($arg) {
print "DEBUG: Foo($arg)\n";
}
}

pg_connect("dbname=test user=test password=test");

$result = pg_query("SELECT 'foo' AS val");
$obj = pg_fetch_object($res
ult, 0, 'Foo', array("test"));
var_dump($obj);

pg_close();

The above code produces the following output:

DEBUG: Foo(test)
object(Foo)#1 (1) {
["val"]=>
string(3) "foo"
}

Could you post a minimal example that doesn't work?

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

John DeSoi

2005-09-24, 9:24 am

Hi Michael,

On Sep 23, 2005, at 10:44 PM, Michael Fuhr wrote:

> Works here with PHP 5.0.4 and PostgreSQL 8.0.3:


Thanks for the example, it helped me figure out my dumb mistake. I
copied code from another place using a PHP abstraction library. I was
calling 'db_fetch_object' not 'pg_fetch_object'.

Thanks much,



John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com