Seite 1 von 2

Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 16:55
von choji
Hallo,

Ich möchte eine PostgreSQL-Schnittstelle in einer PHP-Anwendung implementieren auf Basis der pg_-Funktionen.
Innerhalb der Anwendung soll es möglich sein, dass der Benutzer eigene SQL-Befehle definieren kann, welche anschließend wiederverwendet werden können. Bei fehlerhaften SQL-Abfragen sollte die Fehlermeldung abgefangen und entsprechend formatiert ausgegeben werden..

Allerdings werden die Fehlermeldungen ständig in folgender Form ausgegeben:
"WARNING pg_query(): Query failed: FEHLER: Syntaxfehler bei ..."

Meine Frage ist nun, wie ich diese Meldungen unterdrücken kann. Ich arbeite auf der Postgres-Version 9.2.24.


ich arbeite erst seit kurzem mit PostgreSQL und bin praktisch noch ein totaler Anfänger (Noob) darin.
Also bitte ich um Entschuldigung falls diese Frage schonmal kam oder recht blöd ist. Ich habe allerdings auch schon 2h nach einer Lösung gegoogelt und nichts passendes gefunden.

Ich habe bereits versucht die php.ini auf display_error = Off und error_reporting = ~E_ALL zu setzen. Hat beides nicht funktioniert. Außerdem wird die Fehlermeldung auch nicht in einem try-catch-Block abgefangen, sodass sie verschwindet. Ein @ vor pg_query hilft da auch nicht.
Diese Ansätze sind natürlich nicht die beste Lösung. Doch ich wäre froh, wenn ich wenigstens erstmal eine Möglichkeit finden würde, diese Mledungen irgendwie zu unterdrücken.

Meiner Meinung nach müsste ich deshalb etwas in der postgresql.conf verändern. Doch da bin ich aufgrund fehlendes Wissens leider überfordert. :/

Mit freundlichen Grüßen,
Choji

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 17:03
von akretschmer
client_min_messages

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 17:58
von choji
Auf welches Error-Level muss ich denn das Attribut setzen? Ich hatte es bereits auf error geändert, das hatte leider nichts bewirkt.
Also gehe ich davon aus, dass diese Fehlermeldung ein Fehler dieses Level ist..

Gibt es eine Möglichkeit mittels client_min_messages sämtliche Fehlermeldungen für den Client zu deaktivieren?

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:04
von akretschmer
setze es halt auf PANIC.

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:06
von castorp
Ich arbeite auf der Postgres-Version 9.2.24.
Hat nichts mit Deinem Problem zu tun, aber die Version wird schon seit einiger Zeit nicht mehr gepflegt.
Du solltest so schnell wie möglich ein Upgrade auf die aktuelle Version einplanen.

https://why-upgrade.depesz.com/show?from=9.2.24&to=12.1

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:20
von choji
setze es halt auf PANIC
Diese Einstellung gibt es für die Version 9.2.24 nicht.
Hat nichts mit Deinem Problem zu tun, aber die Version wird schon seit einiger Zeit nicht mehr gepflegt.
Du solltest so schnell wie möglich ein Upgrade auf die aktuelle Version einplanen.
Gibt es für client_min_messages höhere Level in späteren Versionen? Und wäre dann damit das Problem gelöst, sobald ich das Level auf FATAL setze?

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:24
von akretschmer
sorry, hast Recht, es geht nur bis ERROR.

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:26
von choji
Wie kann man es dann lösen? Indem man server_min_messages auf ein höheres Level setzt? Irgendeinen Weg muss es ja geben, ansonsten ist es ja eigentlich unvorstellbar, dass man Fehlermeldungen nicht einfach unterdrücken und abfangen kann..

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Do 16. Jan 2020, 18:56
von castorp
choji hat geschrieben:
Do 16. Jan 2020, 18:26
Wie kann man es dann lösen? Indem man server_min_messages auf ein höheres Level setzt? Irgendeinen Weg muss es ja geben, ansonsten ist es ja eigentlich unvorstellbar, dass man Fehlermeldungen nicht einfach unterdrücken und abfangen kann..
Das macht man normalerweise im Programmcode.

Die meisten Programmiersprachen kennen sog. Exception handler (z.B. "Try - catch" in Java) - dort kann man dann entscheiden ob der Fehler angezeigt, nur in's Logfile geschrieben oder ignoriert wird.

Kennt PHP Exception-Handling?

Re: Fehlermeldungen Client-seitig unterdrücken

Verfasst: Fr 17. Jan 2020, 10:16
von choji
Die meisten Programmiersprachen kennen sog. Exception handler (z.B. "Try - catch" in Java) - dort kann man dann entscheiden ob der Fehler angezeigt, nur in's Logfile geschrieben oder ignoriert wird.

Kennt PHP Exception-Handling?
Wie bereits weiter oben erwähnt, habe ich dies bereits versucht und der Fehler wird trotzdem ausgegeben.
Könnte das vielleicht daran liegen, dass ich eine nicht mehr unterstützte Postgres-Version verwende?