[PGsql]CREATE FUNCTION / OUT parameters are not implemented
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE FUNCTION adminlogin(in_username character varying, in_pass character varying, in_userhash character varying, in_userip character varying, in_useragent text, OUT out_result integer) RETURNS integer
AS $$
DECLARE
userrecord RECORD;
query TEXT;
generatedSessionID integer;
BEGIN
SELECT userid INTO userrecord
FROM data.users
WHERE username = in_username AND pass = in_pass;
IF FOUND THEN
--sessie zetten.
generatedSessionID := NEXTVAL('data.sessies_sessieID_seq2');
EXECUTE'
INSERT INTO data.sessies
VALUES('||generatedSessionID||','||QUOTE_LITERAL(in_userip)||','||QUOTE_LITERAL(in_userhash)||','||QUOTE_LITERAL(in_useragent)||',NOW(),'||userrecord.userid||')
';
IF FOUND THEN
out_result := 1;
END IF;
ELSE
out_result := 0;
END IF;
RETURN;
END;
$$
LANGUAGE plpgsql SECURITY DEFINER;
AS $$
DECLARE
userrecord RECORD;
query TEXT;
generatedSessionID integer;
BEGIN
SELECT userid INTO userrecord
FROM data.users
WHERE username = in_username AND pass = in_pass;
IF FOUND THEN
--sessie zetten.
generatedSessionID := NEXTVAL('data.sessies_sessieID_seq2');
EXECUTE'
INSERT INTO data.sessies
VALUES('||generatedSessionID||','||QUOTE_LITERAL(in_userip)||','||QUOTE_LITERAL(in_userhash)||','||QUOTE_LITERAL(in_useragent)||',NOW(),'||userrecord.userid||')
';
IF FOUND THEN
out_result := 1;
END IF;
ELSE
out_result := 0;
END IF;
RETURN;
END;
$$
LANGUAGE plpgsql SECURITY DEFINER;
Krijg ik deze foutmelding:
Quote:
ERROR: 0A000: CREATE FUNCTION / OUT parameters are not implemented
Wat is de oplossing van dit probleem?
Lokaal gaat alles prima, maar online bij mijn hoster, gaat het gewoon niet!
Gewijzigd op 01/01/1970 01:00:00 door Simon Blok
CREATE FUNCTION adminlogin(IN in_username character varying, IN in_pass character varying, IN in_userhash character varying, IN in_userip character varying, IN in_useragent text, OUT out_result integer) RETURNS integer
Heb t geprobeerd, maar is niet de oplossing!
Tip: ontwikkel en test met dezelfde databaseversie als wat er op je server draait. Zelf heb ik 8.2 op de server staan en zowel 8.2 als 8.3 hier thuis staan. 8.3 voor de kennismaking en het testen van bestaande databases, dan kan de migratie op de server plaatsvinden met minder risico's.
Ik heb lokaal versie 8.2 draaien, maar online draait 8.0.8. Ik begin het een beetje zat te worden nu. Ik heb al meer dan 10 mailtje heen en weer gestuurd naar mijn hostingprovider om bepaalde dingen te regelen. De meeste dingen zijn geregeld, maar blijkbaar moeten er nu nog wat instellingen omgezet worden?
Al blijft het uiteraard mogelijk om meerdere versies naast elkaar te draaien, zorg wel voor aparte bestandslocaties en poortnummers. Aparte machines binnen een netwerk of virtuele machines werkt nog handiger.