Dies ist eine Problemumgehung für mein Problem. Es löst das Problem, indem es die PostgreSQL-Funktion verwendet, um den ?
zu ersetzen Betreiber.
Ich mag es nicht wirklich, weil es PDO nicht mehr konform mit PostgreSQL macht. Aber ich habe keine wirkliche Lösung gefunden.
CREATE FUNCTION json_key_exists(JSONB,TEXT) RETURNS BOOLEAN LANGUAGE SQL STABLE AS $f$
SELECT $1 ? $2
$f$;
Und jetzt kann ich die Abfrage verwenden:
SELECT * FROM post WHERE json_key_exists(locations, :location);
Die Problemumgehung wurde von dem fabelhaften RhodiumToad von freenode #postgresql
vorgeschlagenBearbeiten
Wie @Abelisto vorgeschlagen hat, ist es nicht erforderlich, die obige Funktion als jsonb_exists(jsonb, text)
zu erstellen ist verfügbar