Vraag & Antwoord

Webprogrammeren & scripting

PHP: id laatste insert

2 antwoorden
  • Hallo, Is er een methode om het id (de Primary Key) van een laatstse insert in een tabel op te vragen. Maar dan niet op de manier van: "SELECT * FROM tabel WHERE velden=net ingevuld" Het moet trouwens op (vrijwel) alle door PHP ondersteunde db-systemen ondersteund worden. Ik kon niet echt een methode vinden anders dan de bovenstaande. (Misschien is dit wel DE methode) Alvast Bedankt, Marcel
  • Tja, elke database heeft daarvoor z'n eigen interne methode. En bij mijn weten zijn er niet voor al deze methoden functies in PHP toegevoegd (mysql zeker wel). Bijvoorbeeld Oracle heeft bij mijn weten niet echt een autonummering veldtype, maar werkt met [i:bbf60f5913]sequences[/i:bbf60f5913] (ofsoiets, ik weet vrij weinig van oracle). En mssql werkt met [i:bbf60f5913]identity [/i:bbf60f5913]velden (waarbij sql7 en sql2000 ook nog verschillen hierin hebben). Dus je zal dan zelf een abstraction layer moeten schrijven die afhankelijk van de database de juiste methode kiest. De omwegen hebben bijna altijd een probleem als ze niet binnen dezelfde transactie/connectie worden uitgevoerd, omdat er dan een kleine kans bestaat dat je niet het juiste record hebt. De kans kan je wel (aanzienlijk) verkleinen door inderdaad te checken op de ingevoerde data, op de invoertijd of op een unieke identifier die je bij een insert zelf genereerd. Of door zaken te bundelen in een transaction. En zo zijn er nog tig andere dingen te verzinnen, maar nogmaals, vergeet niet dat het lapmiddelen blijven. De kans dat het fout kan gaan is natuurlijk ook afhankelijk van het gebruik van de database en de grootte van de database (veel concurrent users + grote database = vertraging in queries = grotere kans op fouten).

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.