Hallo,
ik ben op dit moment bezig met een query waarbij er meerdere rijen tegelijk in een tabel worden gestopt. Dit zullen ongeveer 250 rijen in één query zijn.
Nu wil ik het laatst aangemaakte id terug krijgen ( autoincrement ), maar nog liever wil ik alle id's terugkrijgen.
Maar zowel de functie:
mysql_insert_id() als
Geven niet het hoogste (en mijn inziens dus laatste) id, maar het eerste id terug.
Dus als ik 250 rijen insert krijg ik, i.p.v. 250, 1 terug.
Zo ziet mijn query eruit (ingekort):
Weet iemand hoe dit kan?
Of heeft iemand een idee hoe ik alle zojuist aangemaakte id's kan terugkrijgen?
Want nu probeer ik met het aantal ingevoerde rijen (mysql_affected_rows()) en het laatste id, alle id's terug te toveren.
Dit levert geen grote problemen op omdat er tussen het invoeren en het ophalen nog geen rijen verwijderd kunnen worden, maar netjes is het natuurlijk niet. Ook omdat je (in theorie) nooit zeker weet of mysql wel opeen volgende nummers gebruikt.
Ook lijkt het mij bij zulke aantallen niet verstandig om elke rij apart te inserten en dan per rij het id op te vragen.
ik ben op dit moment bezig met een query waarbij er meerdere rijen tegelijk in een tabel worden gestopt. Dit zullen ongeveer 250 rijen in één query zijn.
Nu wil ik het laatst aangemaakte id terug krijgen ( autoincrement ), maar nog liever wil ik alle id's terugkrijgen.
Maar zowel de functie:
mysql_insert_id() als
PHP:
1
2
3
4
| $nieuwIdR = mysql_query( "SELECT LAST_INSERT_ID()" ) or die("Er is een fout opgetreden: ".mysql_error());//selecteer het laatste id $nieuwId = 0; if($newIdR = mysql_fetch_row($nieuwIdR)) $nieuwId = $newIdR[0]; |
Geven niet het hoogste (en mijn inziens dus laatste) id, maar het eerste id terug.
Dus als ik 250 rijen insert krijg ik, i.p.v. 250, 1 terug.
Zo ziet mijn query eruit (ingekort):
PHP:
1
2
| INSERT INTO werkplaats (id, land, postcode, plaats) VALUES (NULL, 'NED', '1234 AA', 'Amsterdam'), (NULL, 'NED', '1434 ZZ', 'Rotterdam'); |
Weet iemand hoe dit kan?
Of heeft iemand een idee hoe ik alle zojuist aangemaakte id's kan terugkrijgen?
Want nu probeer ik met het aantal ingevoerde rijen (mysql_affected_rows()) en het laatste id, alle id's terug te toveren.
Dit levert geen grote problemen op omdat er tussen het invoeren en het ophalen nog geen rijen verwijderd kunnen worden, maar netjes is het natuurlijk niet. Ook omdat je (in theorie) nooit zeker weet of mysql wel opeen volgende nummers gebruikt.
Ook lijkt het mij bij zulke aantallen niet verstandig om elke rij apart te inserten en dan per rij het id op te vragen.