Ga naar inhoud

PHP: id laatste insert


Aanbevolen berichten

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
Link naar reactie
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).
Link naar reactie
Bedankt Annie, Voor dit antwoord was ik al bang, nu weet ik het zeker. (Niet negatief bedoeld hoor) Wat is dan het commando binnen MySQL dan begin ik daar maar mee. Ik kon er voor MySQL geen vinden in het manual daar zag ik alleen affected rows (zal wel weer aan mijn ogen liggen). Bedankt, Marcel Laat maar! Ik had wel heel oppervlakkig gekeken! Dit is natuurlijk de mysql_insert_id() functie....
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...