Skip site navigation (1) Skip section navigation (2)

Re: [GENERAL] interesting PHP/MySQL thread

From: Rory Campbell-Lange <rory(at)campbell-lange(dot)net>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Josh Berkus <josh(at)agliodbs(dot)com>, Joe Conway <mail(at)joeconway(dot)com>,"Advocacy (PostgreSQL)" <pgsql-advocacy(at)postgresql(dot)org>,PostgreSQL-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: [GENERAL] interesting PHP/MySQL thread
Date: 2003-06-24 12:59:33
Message-ID: 20030624125933.GD11929@campbell-lange.net (view raw or flat)
Thread:
Lists: pgsql-advocacypgsql-docspgsql-general
I'm a Postgres and PHP newbie. I'm having a great deal of success with
my latest development effort having moved most of the logic from a
perl/php logic 'core' to postgres using plpgsql functions. (Thanks for
all that help, Josh).

I have a few comments to make on the idea of introducing people, PHP
developers especially, to postgresql. I'm not commenting here on how
easy it is to use PHP with postgres (it was transparent for me using
Debian) or whether or not to advocate the use of advanced features to
general users. Rather, it appears to me, that the PHP/Postgres
documentation and feature set should be improved.

1)  PHP Documentation

    The postgresql "write up" in the PHP html documentation doesn't give
    a very good picture of the capabilities of postgres. While the PHP
    docs aren't obviously a good place to write up the benefits of
    plpgsql functions, some mention should be made to help differentiate
    between the capabilities of MySQL and Postgres.

    PHP documents: 
    ref.pgsql.html; ref.mysql.html

    The MySQL examples given for database specific functions are useful
    and to the point. The page on most of the Postgres functions are
    sketchy. (No error number in Postgres...)

    PHP documents:
    function.mysql-errno.html; function.pg-result-error.html

    PHP/Postgres provides a set of predefined constants, eg
    PGSQL_COMMAND_OK and PGSQL_FATAL_ERROR. The use and parameters of
    these constants is not described. The latter appears to provide
    inconsistent results under my PHP 4.2.3 install.

2)  PHP<->Postgres bugs

    Apart from the PGSQL_FATAL_ERROR problem above, it would be good to
    find a more simple, PHP-like, approach to catch exceptions and the
    like. At the moment I believe one has to do something like:

	function test () {
		$sql = "
			SELECT 
				count(n_id) as number
			FROM 
				people
			";

        ob_start();
		$result = pg_exec ($this->conn, $sql);
        $this->status = pg_result_status($result);
		ob_end_clean();

        $this->result_checker();
		if ($this->error != 0) {
		    echo "An error occured.\n";
			exit;
		}
        ...
		return $this;
	}

	function result_checker () {
        // horrible code to check for postgres exceptions
        // status numbers sometimes show up
        // ghosts of PGSQL_FATAL_ERROR?
		if (! isset($this->status) or 
		   ($this->status == 5 or $this->status == 7)) {
			$this->error     = 1;
            // wierdly, this always works
			$this->error_msg = pg_last_error($this->conn);
			return 1;
		} else {
			return 0;
		}
	}


On 22/06/03, Bruce Momjian (pgman(at)candle(dot)pha(dot)pa(dot)us) wrote:
> We need to use this opportunity to encourage PHP folks to switch to
> PostgreSQL.

-- 
Rory Campbell-Lange 
<rory(at)campbell-lange(dot)net>
<www.campbell-lange.net>

In response to

Responses

pgsql-docs by date

Next:From: Jan WieckDate: 2003-06-24 13:29:32
Subject: Re: [GENERAL] Documentation quality WAS: interesting
Previous:From: Justin CliftDate: 2003-06-24 11:01:27
Subject: Re: interesting PHP/MySQL thread

pgsql-advocacy by date

Next:From: Jan WieckDate: 2003-06-24 13:29:32
Subject: Re: [GENERAL] Documentation quality WAS: interesting
Previous:From: Anton de WetDate: 2003-06-24 12:23:03
Subject: Large site(s) in South Africa?

pgsql-general by date

Next:From: Jan WieckDate: 2003-06-24 13:29:32
Subject: Re: [GENERAL] Documentation quality WAS: interesting
Previous:From: IvarDate: 2003-06-24 12:42:47
Subject: bytea char escaping

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group