PostgeSQL - jak pobrać informacje o błędzie?
Marek - 29-10-2007 00:00
PostgeSQL - jak pobrać informacje o błędzie?
Witam,
Czy ktoś wie jak przechwycić informacje o błędzie SQL w Postgresie? Chciałem zastosować pg_last_error () lecz zwraca mi pusty string. Wyczytałem w manualu do PHP, ze lepiej jest użyć pg_result_error(). Parametrem wywołania jest resource connection, którego nie da się w żaden sposób uzyskać w przypadku błędu ani funkcą pg_query() ani pg_get_result() To jakaś paranoja.... Wygląda na to, że odczytywać błędy można tylko wtedy gdy ich nie ma. Czy ktoś z Was to przerabiał?
A.L.E.C - 29-10-2007 00:00
Marek pisze: > Witam, > > Czy ktoś wie jak przechwycić informacje o błędzie SQL w Postgresie? Chciałem > zastosować pg_last_error () lecz zwraca mi pusty string. Wyczytałem w > manualu do PHP, ze lepiej jest użyć pg_result_error(). Parametrem wywołania > jest resource connection, którego nie da się w żaden sposób uzyskać w > przypadku błędu ani funkcą pg_query() ani pg_get_result() To jakaś > paranoja.... Wygląda na to, że odczytywać błędy można tylko wtedy gdy ich > nie ma. Czy ktoś z Was to przerabiał?
coś mi się wydaje że nie bardzo potrafisz zrozumieć manual, ale przecież tam są także przykłady użycia: http://pl.php.net/manual/pl/function...sult-error.php
a tak poza tym, to NTG.
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl
Marek - 29-10-2007 00:01
> coś mi się wydaje że nie bardzo potrafisz zrozumieć manual, ale przecież > tam są także przykłady użycia: > http://pl.php.net/manual/pl/function...sult-error.php > > a tak poza tym, to NTG.
Hmmm... PHP to również NTG bo ktoś mi tam zarzuci, że piszę o bazach danych zamiast o PHP. Zresztą nie ma to znaczenia czy platformą jest PHP czy C++ czy ASP czy Java. Funkcje o jakich mówię odwołują się do enginu Postgresa w każdym języku programowania zachowywać się będą identycznie. Tak więc uważam, ze pytanie na temat baz danych powinno być zadane właśnie w tej grupie.
A co do wątku zasadniczego to w manualu napisano niejednoznacznie i stąd moja frustracja. Chodzi o manual:
http://www.php.net/manual/en/function.pg-get-result.php
A w nim odnośnie pg_get_result():
Return Values The result resource, or FALSE if no more results are available.
Założyłem błednie, że niewykonana z powodu błędu kwerenda nie daje zwrotnie rezultatu i w konsekwencji pg_get_result() zwraca FALSE a nie ID zasobów. W dalszej konsekwencji nie byłoby możliwości odczytania informacji o błędzie. Przepraszam za zamieszanie.
=?ISO-8859-2?Q?Artur_Muszy=F1ski?= - 30-10-2007 00:01
Marek pisze: > Czy ktoś wie jak przechwycić informacje o błędzie SQL w Postgresie? Chciałem > zastosować pg_last_error () lecz zwraca mi pusty string. Wyczytałem w > manualu do PHP, ze lepiej jest użyć pg_result_error(). Parametrem wywołania > jest resource connection, którego nie da się w żaden sposób uzyskać w > przypadku błędu ani funkcą pg_query() ani pg_get_result() To jakaś > paranoja.... Wygląda na to, że odczytywać błędy można tylko wtedy gdy ich > nie ma. Czy ktoś z Was to przerabiał?
Ja używam pg_last_error() w PHP i jak dotąd zawsze mi zwraca, co powinien.
artur
Marek - 30-10-2007 00:01
Witaj,
> Ja używam pg_last_error() w PHP i jak dotąd zawsze mi zwraca, co powinien.
Również używałem do tej pory jednakże to nie jest wygodne przy wykonywaniu wielu zapytań SQL w formie jednego polecenia.Jeśli dwa zapytania spośród 10 zgłosiły błąd to trudno było dojść do przyczyn.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?ISO-8859-2?Q?Re=3A_Informatyka=2C_Java=2C_EJB=2C_Ajax=2C?== ?ISO-8859-2?Q?_Spring=2E_Czy=BFby_to_koniec_=B6wiata=2C_czy? ==?ISO-8859-2?Q?_te=BF_nasze_uczelnie_b=EAd=B1_uczy=B3y_w_k?== ?ISO-8859-2?Q?o=F1cu!_czego_praktyczne?=
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
=?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?=
SUBIEKT - 4 - JAK PRZEKOPIOWAC wszystkie informacje do drugiego SUBIEKTA na innym KOMPIE
=?iso-8859-2?q?Zna_si=EA_kto=B6_na_teoretycznej_stronie_proje ktowaini_system=F3w_informatycznych=3F?=
[MYSQL] Uzyskanie informacji o =?iso-8859-2?Q?wi=EAzach_sp=F3jno=B6ci?=
=?ISO-8859-2?Q?Informix_i_konfiguracja_ODBC_ze_zmian=B1_stron y_kodowej.?=
MSSQL - jakie informacje siedzą w logu (plik .ldf)?
Co zrobić jak ktoś usunie rekord zeby nie stracic informacji
=?iso-8859-1?q?Praca_dla_Administratora_System=F3w_Informatyc znych?=
zanotowane.pldoc.pisz.plpdf.pisz.plmelooonka.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|