PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql regexp_matches in der Ansicht gibt immer null zurück, wenn es von PHP abgefragt wird

Dieselbe Abfrage

select  e'\\x353078'::bytea;

liefert Ergebnisse in verschiedenen Formaten in psql :

  bytea
----------
 \x353078

und in PgAdmin III :

  bytea
----------
 50x

Für die Dokumentation:

PgAdmin III (und auch PgAdmin4) setzt wahrscheinlich aus historischen Gründen den Wert von bytea_output um escape während der Standardwert des Parameters hex ist . Dies kann zu Verwirrung führen (und wie Sie sehen können, führt es zu Verwirrung). Es scheint, dass pgAdmin den Standardwert des Parameters nicht ändern sollte.

Sie können den Parameter in Ihrer Anwendung ändern, um das gleiche Verhalten wie in PgAdmin zu erhalten:

set bytea_output to escape;

Natürlich mit encode() ist auch eine gute Lösung.