anoniem Geplaatst: 23 mei 2002 Delen Geplaatst: 23 mei 2002 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 Quote Link naar reactie
anoniem Geplaatst: 23 mei 2002 Auteur Delen Geplaatst: 23 mei 2002 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). Quote Link naar reactie
anoniem Geplaatst: 23 mei 2002 Auteur Delen Geplaatst: 23 mei 2002 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.... Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen