Я создал эту таблицу с Postgresql 9.3:
CREATE TABLE usuarios.token_usrpwd
(
id_token serial NOT NULL,
token character varying,
fechahora_creacion character varying,
CONSTRAINT token_usrpwd_pkey PRIMARY KEY (id_token)
)
WITH (
OIDS=FALSE
);
ALTER TABLE usuarios.token_usrpwd
OWNER TO postgres;
Затем я создал функцию:
CREATE OR REPLACE FUNCTION eiel.insert_usuario_tokenpwd(character varying, character varying)
RETURNS boolean AS
$BODY$
DECLARE
token_obtenido ALIAS FOR $1;
fechahora_obtenido ALIAS FOR $2;
BEGIN
INSERT INTO usuarios.token_usrpwd (token,fechahora_creacion) VALUES (token_obtenido,fechahora_obtenido);
IF found THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
$BODY$
LANGUAGE plpgsql
Функция и таблица созданы правильно. Затем, когда я вызываю функцию из консоли SQL, она вставляет строку без проблем:
SELECT eiel.insert_usuario_tokenpwd('190e526a2a54ff915d735026f9b64d8f','20150603112531')
Но проблема возникает, когда я вызываю тот же запрос с моего php:
$insql= "SELECT eiel.insert_usuario_tokenpwd('190e526a2a54ff915d735026f9b64d8f','20150603112531')";
$queryresult = pg_query($database_connection, $insql) or die("Error in query: $insql . " . pg_last_error($database_connection));
Затем происходит ошибка и говорит:
Предупреждение: pg_query (): Запрос не выполнен: ОШИБКА: не существует. eiel.insert_usuario_tokenpwd (неизвестно, неизвестно)
ЛИНИЯ 1: ВЫБЕРИТЕ eiel.insert_usuario_tokenpwd (‘190e526a2a54ff915d73502 …
^
Подсказка: функции Ninguna совпадают по номеру и типу аргументации. Puede ser necesario agregar talkión explícita de tipos. в F: \ ms4w \ приложения \ EIELv3 \ xfunctions.php онлайн 432
Ошибка в запросе: SELECT eiel.insert_usuario_tokenpwd (‘190e526a2a54ff915d735026f9b64d8f’, ‘20150603112531’). ОШИБКА: не существует. Eiel.insert_usuario_tokenpwd (неизвестно, неизвестно)
ЛИНИЯ 1: ВЫБЕРИТЕ eiel.insert_usuario_tokenpwd (‘190e526a2a54ff915d73502 …
^
Подсказка: функции Ninguna совпадают по номеру и типу аргументации. Puede ser necesario agregar talkión explícita de tipos.
Это означает, что функция не существует.
СОВЕТ: ни одна функция не соответствует заданному имени и типу аргумента. Возможно, вам понадобится добавить явное приведение типов.
Я искал информацию на этом и других форумах и пробовал решения, такие как добавление приведений типа :: изменение персонажа или предоставление таких решений, как:
Функция Postgres создает, но не выполняет
или же
Ни одна функция не соответствует заданному имени и типу аргумента
но все равно не работает. Есть идеи, что происходит или я что-то упускаю?
Любая идея будет оценена
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …