Fehlermeldungen Client-seitig unterdrücken

Programmierung mit PostgreSQL (C#, PHP, Perl, Java, ...)
choji
Neuer Benutzer
Beiträge: 6
Registriert: Do 16. Jan 2020, 16:45

Fehlermeldungen Client-seitig unterdrücken

Beitrag 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

akretschmer
Erfahrener Benutzer
Beiträge: 7715
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag von akretschmer »

client_min_messages
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

choji
Neuer Benutzer
Beiträge: 6
Registriert: Do 16. Jan 2020, 16:45

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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?

akretschmer
Erfahrener Benutzer
Beiträge: 7715
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag von akretschmer »

setze es halt auf PANIC.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

castorp
Erfahrener Benutzer
Beiträge: 1202
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

choji
Neuer Benutzer
Beiträge: 6
Registriert: Do 16. Jan 2020, 16:45

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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?

akretschmer
Erfahrener Benutzer
Beiträge: 7715
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag von akretschmer »

sorry, hast Recht, es geht nur bis ERROR.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

choji
Neuer Benutzer
Beiträge: 6
Registriert: Do 16. Jan 2020, 16:45

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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..

castorp
Erfahrener Benutzer
Beiträge: 1202
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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?
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

choji
Neuer Benutzer
Beiträge: 6
Registriert: Do 16. Jan 2020, 16:45

Re: Fehlermeldungen Client-seitig unterdrücken

Beitrag 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?

Antworten