sql problem with php
am 05.11.2004 15:33:09 von Flavio Fonseca
Hi,
I am having a problem with a system I developed using php with postgres.
Take a look at this:
Welcome to psql 7.3.2, the PostgreSQL interactive terminal.
NetAdmin=# delete from operador where oplogin = 'ff';
ERROR: fk_historicosessao_operador referential integrity violation - key in
operador still referenced from historicosessao
and then, this:
Welcome to psql 7.4.2, the PostgreSQL interactive terminal.
NetAdmin=# delete from operador where oplogin = 'ff';
ERROR: update or delete on "operador" violates foreign key constraint
"fk_historicosessao_operador" on "historicosessao"
I am not able to get a error_number in pgsql errors, only the error message.
So when I used pgsql 7.3 a used the string "referential integrity violation"
to detect this error, but on version 7.4 of pgsql this string was replaced
with "violates foreign key constraint" .
Anyone has a definitive solution on this or the way is to wait and change all
my code on future releases of pgsql?
Thank you all for the attention.
--
Att.
Flavio Fonseca
Administrador de Redes
Divisao de Redes
Universidade Federal de Uberlandia
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html
Re: sql problem with php
am 06.11.2004 02:40:34 von ljb
ff@dr.ufu.br wrote:
> Hi,
>
> I am having a problem with a system I developed using php with postgres.
>...
>
> I am not able to get a error_number in pgsql errors, only the error message.
> So when I used pgsql 7.3 a used the string "referential integrity violation"
> to detect this error, but on version 7.4 of pgsql this string was replaced
> with "violates foreign key constraint" .
> Anyone has a definitive solution on this or the way is to wait and change all
> my code on future releases of pgsql?
Unfortunately this is a limitation of the PHP PostgreSQL extension.
PostgreSQL provids access to error numbers (I think as of 7.4)
through libpq PQerrorField(), but PHP doesn't give you access to this yet.
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
Re: sql problem with php
am 06.11.2004 16:37:49 von Robert Treat
On Friday 05 November 2004 20:40, ljb wrote:
> ff@dr.ufu.br wrote:
> > Hi,
> >
> > I am having a problem with a system I developed using php with
> > postgres. ...
> >
> > I am not able to get a error_number in pgsql errors, only the error
> > message. So when I used pgsql 7.3 a used the string "referential
> > integrity violation" to detect this error, but on version 7.4 of pgsql
> > this string was replaced with "violates foreign key constraint" .
> > Anyone has a definitive solution on this or the way is to wait and change
> > all my code on future releases of pgsql?
>
> Unfortunately this is a limitation of the PHP PostgreSQL extension.
> PostgreSQL provids access to error numbers (I think as of 7.4)
> through libpq PQerrorField(), but PHP doesn't give you access to this yet.
>
Actually I believe you can get it:
http://us2.php.net/manual/en/function.pg-result-error.php
though this will only work in pg74 or greater.
--
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
Re: sql problem with php
am 06.11.2004 23:53:23 von ljb
xzilla@users.sourceforge.net wrote:
> On Friday 05 November 2004 20:40, ljb wrote:
>> ff@dr.ufu.br wrote:
>> > Hi,
>> >
>> > I am having a problem with a system I developed using php with
>> > postgres. ...
>> >
>> > I am not able to get a error_number in pgsql errors, only the error
>> > message. So when I used pgsql 7.3 a used the string "referential
>> > integrity violation" to detect this error, but on version 7.4 of pgsql
>> > this string was replaced with "violates foreign key constraint" .
>> > Anyone has a definitive solution on this or the way is to wait and change
>> > all my code on future releases of pgsql?
>>
>> Unfortunately this is a limitation of the PHP PostgreSQL extension.
>> PostgreSQL provids access to error numbers (I think as of 7.4)
>> through libpq PQerrorField(), but PHP doesn't give you access to this yet.
>>
>
> Actually I believe you can get it:
> http://us2.php.net/manual/en/function.pg-result-error.php
>
> though this will only work in pg74 or greater.
No, I don't think PHP has this capability (get the value of an error
message subfield). The pg_result_error() you refer to gives you the whole
message, which makes it hard for a program to determine exactly what went
wrong.
On the documentation page you point to, somebody added a comment
referencing his own patch. The patch adds a PHP function called
pg_result_error_field(), which lets a script get at the individual
PostgreSQL error message fields. This would be a nice addition to PHP, but
I don't know if the patch was submitted or accepted. It isn't in the latest
PHP 4 release, 4.3.9. As you point out, however, it won't help the original
poster still dealing with PostgreSQL 7.3, which doesn't have this feature.
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)