У меня есть функция в PostgreSQL / plpgsql со следующей подписью:
CREATE OR REPLACE FUNCTION user_login(TEXT, TEXT) RETURNS SETOF _get_session AS $$ ... $$
Где _get_session
- это вид. Функция работает нормально при вызове из phpPgAdmin, однако, когда я вызываю ее из PHP, я получаю следующую ошибку:
Предупреждение: pg_query () [function.pg-query]: Ошибка запроса: ОШИБКА: тип
"session_ids" не существует CONTEXT: компиляция функции PL / pgSQL
«user_login» возле строки 2 в /home/sites/blah.com/index.php в строке 69
Раздел DECLARE функции содержит следующие переменные:
oldSessionId session_ids := $1;
newSessionId session_ids := $2;
Домен session_ids СУЩЕСТВУЕТ, а другие функции, использующие тот же домен, работают при вызове из того же сценария. PHP выглядит следующим образом:
$query = "SELECT * FROM $dbschema.user_login('$session_old'::TEXT, '$session'::TEXT)";
$result = pg_query($login, $query);
Я также пытался сделать это, используя ::session_ids
вместо ::TEXT
при вызове функции, однако я получаю ту же ошибку.
Справка: o (