I recently did a re-install of PostgreSQL and php4 on Debian, which has
broken some development code here.  None of the actual code has changed in
days, which I can verify against the CVS tree, so I know it's one of two

a)  botched server config
b)  the code wasn't as robust as it should have been in the first place.

What I have is a class (db_postgres) which we use for all DB access within
the project.   The functions relative to what are breaking are as follows:

class db_postgres {
    var $db_name = "ourdb";
    var $db_user = "ouruserB";
    var $db_conn;

    function get_connection() {
        $this->db_conn = pg_connect("dbname=$this->db_name ".
        if ($this->db_conn == FALSE) {
            echo "Internal warning:  Db connection not established.\n";

    function execute_sql($sql) {
        $result = pg_exec($this->db_conn, $sql);
        if ($result == NULL) {
            echo "Error executing following SQL:<hr><pre>$sql</pre>\n";
        return $result;

    function get_rs($sql) {
        // Returns an array of hashes
        $result = $this->execute_sql($sql);
        if ($result == NULL)
            return array();
        $num = pg_numrows($result);
        $result_set = array();
        for($i = 0; $i < $num; $i++)
            array_push($result_set, pg_fetch_object($result, $row++));
        return $result_set;

The following main php page (ommiting includes) works:

    $db = new db_postgres;
    $result = $db->get_rs("select * from vendor");
    $result = $db->get_rs("select * from vendor");

    $db = new db_postgres;
    $result = $db->get_rs("select * from vendor");
    $db = new db_postgres;
    $result = $db->get_rs("select * from vendor");

Will break on the second calls ot get_rs().  Yes, I -could- be passing
around the db handles, or passing around already instantiated class
objects, but this gets a bit messy.  Plus, everything was working dandy
with making two $db objects within a single page... which is why this
bothers me.

The actual PHP error upon the second call is:
"Warning: 1 is not a valid PostgreSQL link resource in ... [snip]"


Justin Buist

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to