last_insert_id in postgres

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mobile Developer in Oost-Nederland (Android en/of

Bedrijfsomschrijving Een unieke kans voor Mobile Developers in Oost-Nederland. Deze prachtige organisatie is namelijk opzoek naar een Mobile Developer. Mobile Development en Ops Engineering gaan hand in hand bij deze organisatie dat een hoog verantwoordelijkheidsgevoel draagt. Als organisatie ontwikkelt zij dan ook veelal mobiele applicaties ter inspiratie en ondersteuning van belangrijke sectoren in Nederland. Met het technische team van gepassioneerde developers en engineers voeren ze dagelijks veelal diverse, inspirerende en complexe werkzaamheden uit. Door gebruik van innovatieve software en de nieuwste platformen binnen de sector is deze klant dan ook zeker als vooruitstrevend te betitelen waar zijn enorm veel waarde

Bekijk vacature »

Dennis

dennis

22/12/2008 16:21:00
Quote Anchor link
ik ben bijna klaar met mijn Database class
die zowel met mysqli werkt als nu ook met postgres

alleen er is 1 functie waar ik niet uitkom

ik kan nergens vinden wat de postgreSQL versie is van mysqli_insert_id.
nu werkt postgres met sequences en niet met auto_increment maar mij lijkt dat het toch mogelijk moet zijn.

weet iemand hier een oplossing voor.

mvg,
Dennis
 
PHP hulp

PHP hulp

18/01/2021 15:03:09
 
Frank -

Frank -

22/12/2008 16:29:00
Quote Anchor link
Die is er ook niet, zo werkt het namelijk niet in de grote database-wereld.

Vooraf het id opvragen (dus nog voordat de INSERT is uitgevoerd):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT NEXTVAL('naam_van_de_sequence') AS next_id;

Ga dit resultaat fetchen en zet hem in je INSERT:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabelnaam (id, kolomnaam)
VALUES($next_id, 'waarde');

Je kunt ook achteraf opvragen wat het is geworden door CURRVAL() of LASTVAL() te gebruiken, ook hier weer een SELECT-query voor gebruiken.

Een andere hele handige optie is RETURNING gebruik bij de INSERT-query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabelnaam (kolomnaam)
VALUES('waarde') RETURNING id;

Ga dit resultaat fetchen zoals je een SELECT fetcht en klaar ben je.

Uiteraard kan het onmogelijk met MySQLi werken, dat is een aanpak voor MySQL-databases. Het heet tenslotte geen pgSQLi...

Vergeet niet dat iedere database anders is en dat je altijd specifieke SQL nodig hebt. Tenzij je alle voordelen van jouw database wilt negeren en wat generieke SQL wilt gebruiken. Snelheid kun je dan beter vergeten.

Ps. RETURNING is pas sinds versie 8.2 beschikbaar, controleer dat wel even.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.