sql >> Databáze >  >> RDS >> PostgreSQL

Postgresql regexp_matches inside view vždy vrátí hodnotu null, když je dotazován z PHP

Stejný dotaz

select  e'\\x353078'::bytea;

poskytuje výsledky v různých formátech v psql :

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

a v PgAdmin III :

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

Pro dokumentaci:

PgAdmin III (a také PgAdmin4) pravděpodobně z historických důvodů nastavuje hodnotu bytea_output escape zatímco výchozí hodnota parametru je hex . To může vést ke zmatku (a jak vidíte, vede). Zdá se, že pgAdmin by neměl měnit výchozí hodnotu parametru.

Můžete změnit parametr ve své aplikaci, abyste získali stejné chování jako v PgAdmin:

set bytea_output to escape;

Samozřejmě pomocí encode() je také dobré řešení.



  1. Připravené prohlášení je v konfliktu s uživatelskými proměnnými

  2. 3 způsoby, jak najít řádky, které obsahují malá písmena v MySQL

  3. CodeIgniter Active Record vložení z jedné tabulky do druhé

  4. PreparedStatement má hodnotu null v klauzuli Where bez podmíněných hodnot if (dynamický dotaz) nebo nesmyslných hodnot