Ich habe eine Funktion in PostgreSQL / plpgsql mit folgender Signatur:
CREATE OR REPLACE FUNCTION user_login(TEXT, TEXT) RETURNS SETOF _get_session AS $$ ... $$
Wo _get_session
eine Ansicht ist. Die Funktion funktioniert einwandfrei, wenn ich sie von phpPgAdmin aus aufrufe, aber wenn ich sie von PHP aus aufrufe, erhalte ich den folgenden Fehler:
Warnung: pg_query() [function.pg-query]: Abfrage fehlgeschlagen: FEHLER: Typ "session_ids" existiert nicht KONTEXT: Kompilierung der PL/pgSQL-Funktion "user_login" in der Nähe von Zeile 2 in /home/sites/blah.com/index.php Zeile 69
Der DECLARE-Abschnitt der Funktion enthält die folgenden Variablen:
oldSessionId session_ids := $1;
newSessionId session_ids := $2;
Der Domäne session_ids EXISTIERT, und andere Funktionen, die dieselbe Domäne verwenden, funktionieren, wenn sie aus demselben Skript heraus aufgerufen werden. Das PHP sieht wie folgt aus:
$query = "SELECT * FROM $dbschema.user_login('$session_old'::TEXT, '$session'::TEXT)";
$result = pg_query($login, $query);
Ich habe auch versucht, dies zu verwenden ::session_ids
anstelle von ::TEXT
beim Aufruf der Funktion, aber ich erhalte den gleichen Fehler.
Hilfe :o(