Re: using CURSOR with PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



> AFAIK, a CURSOR may be used only inside a single transaction, not a
> single session. So it can't be used to 'page' the output of a query,
> for example.
> 
> And, also AFAIK, even with pconnect, each connect creates a different
> session. Only the (TCP) connection is re-used. I mean, nothing changes
> from the PHP script standpoint when you switch from pg_connect() to
> pg_pconnect().
> 
> Quoting the PHP manual:
> 
> " People who aren't thoroughly familiar with the way web servers
>   work and distribute the load may mistake persistent connects for what
>   they're not. In particular, they do not give you an ability to open
>   'user sessions' on the same SQL link, they do not give you an ability
>   to build up a transaction efficently, and they don't do a whole lot
>   of other things. In fact, to be extremely clear about the subject,
>   persistent connections don't give you any  functionality that wasn't
>   possible with their non-persistent brothers. "
> 

Funny, I am now writing an analysis for myself about this problem.

I have experience in databases, and I want to use my experience to build
the same kinds of applications that I built on minicomputers.

For this I got my requirements together :
- I like postgreSQL a lot and includes transactions, this was an easy
choice
- I wanted to use HTML to build my front-ends (cross-platform!)
- Because PHP is neatly integrated with HTML, it is a better choice than
Perl or Python

However, the only thing that seems to be missing is a layer between CGI
and the database. If someone logs in to the system, this layer should
return a session key and provide a process which opens a connection to
the database and keeps this open until the user logs out.

This should be transparent to the application programmer. Since normally
all traffic between PHP and postgreSQL goes via the pgsql library,
should it not be possible to add an interface which acts as pgsql and
handles these sessions and is able to communicate with the real pgsql
library, which will then be part of the running program ?

In this way it should then be possible to open transactions across CGI
invocations and to work with cursors.

Does anyone know if something like this exists as Free/OSS ?

Regards,

Jurgen Defurne


[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux