![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Mam zamiar przygotować ładny sposób wykonywania i kontrolowania zapytań postgres. Skoro korzysta się z PHP5, pasowałoby bowiem wykorzystywać Exeptions i pare innych mechanizmow, ktore się wraz z 5 dostaje.
Okazało się jednak, że bardzo szybko natrafiłem na problem, ktorego nie umiem w mądry sposób rozwiazać. Chodzi o kody błędów, zwracane tylko przez funkcję pg_result_error_field" title="Zobacz w manualu PHP" target="_manual () Aby jednak móc z niej korzystać, konieczne jest otrzymanie resource z wynikiem zapytania, a takiego, w przypadku błędu w zapytaniu, funkcja pg_query" title="Zobacz w manualu PHP" target="_manual () nie zwraca (zamiast tego dając FALSE). Zamiast niej manual online poleca pg_send_query" title="Zobacz w manualu PHP" target="_manual () (która zawsze zwraca true) a potem wyciągnąć resource przy pomocy pg_get_result" title="Zobacz w manualu PHP" target="_manual () No i OK - pg_get_result zawsze zwraca resource, teraz jednak jak mam sprawdzić, czy zapytanie się wykonało? Trochę dziwne wydaje mi się każdorazowe wyciąganie od bazy kodu błędu ( pg_result_error_field" title="Zobacz w manualu PHP" target="_manual () ) i sprawdzanie, czy jakiś błąd się pojawił. Ale innego sposobu narazie nie udało mi się znaleść. Może w wiecie? przykład w działaniu: (PHP5, pg8 )
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
W poscie podałem, że nie jest to możliwe, ponieważ nie można wtedy wyciągnąć kodu błędu, gdyż ... zamiast resource otrzymaliśmy FALSE.
A kod błędu jest niezbędny, by móc rozpoznać np. dlaczego dany rekord się nie dodał (brak jakiegoś zewnętrznego klucza, lub ograniczenie zewnętrzne) W każdym razie dzięki. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 23:46 |