sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo evitar que PDO interprete un signo de interrogación como marcador de posición?

Utilice el formulario de llamada de función. Según los catálogos del sistema, hstore ? el operador usa el exist función:

regress=# select oprname, oprcode from pg_operator where oprname = '?';
 oprname | oprcode 
---------+---------
 ?       | exist
(1 row)

para que puedas escribir:

SELECT * FROM tbl WHERE exist(hst,'foo');

(Personalmente, no soy un gran admirador del diseño y la documentación centrados en el operador de hstore, creo que descarta las propiedades útiles de autodocumentación de una interfaz basada en funciones sin ningún beneficio real y generalmente uso sus llamadas a funciones en lugar de sus operadores. Simplemente porque puede definir operadores no significa que deba hacerlo).