Probleem:
In foreach-loop een INSERT-statement uitvoeren (het pk-veld dat auto-incrementeel is, geef ik niet op of NULL als value)
... 1e keer loopt het goed (haalt het correcte volgende id op)
... 2de keer geeft het foutmelding owv duplicate key ... hij haalt niet de volgende incrementele waarde op
Omgeving:
phpMyAdmin 2.5.3-rc2 >> MySQL 4.0.20a-nt
Current PHP version: 4.3.9
Zoekpogingen:
Google
GoT
Codepogingen:
Ik heb LAST_INSERTED_ID (mySQL) en mysql_insert_id() (PHP) geprobeerd, maar beiden geven 0 terug. Het veld weglaten deed ik in het begin, maar ook dit werkt niet.
max()+1 zie ik niet echt als een oplossing aangezien meerdere gebruikers tegelijk de webpagina kunnen oproepen.
Vraag:
Het probleem ligt duidelijk in het feit dat mySQL de teller niet ophoogt (aangezien hij hem wel correct ophaalt voor het eerste record, maar nadien dienst weigert). Iemand een idee hoe het komt en, meer nog, hoe op te lossen of te omzeilen?
Extra info:
een ander veld waarop een default value gespecifieerd is (datumveld met default value now()) blijft leeg (0 in dit geval)
thx 4 hlp
In foreach-loop een INSERT-statement uitvoeren (het pk-veld dat auto-incrementeel is, geef ik niet op of NULL als value)
... 1e keer loopt het goed (haalt het correcte volgende id op)
... 2de keer geeft het foutmelding owv duplicate key ... hij haalt niet de volgende incrementele waarde op
Omgeving:
phpMyAdmin 2.5.3-rc2 >> MySQL 4.0.20a-nt
Current PHP version: 4.3.9
Zoekpogingen:
GoT
Codepogingen:
Ik heb LAST_INSERTED_ID (mySQL) en mysql_insert_id() (PHP) geprobeerd, maar beiden geven 0 terug. Het veld weglaten deed ik in het begin, maar ook dit werkt niet.
max()+1 zie ik niet echt als een oplossing aangezien meerdere gebruikers tegelijk de webpagina kunnen oproepen.
PHP:
1
2
3
4
5
6
| foreach ($varrPCs as $vPC) { $sql = "INSERT INTO Sessies(ID, Toestel, Slot, Datum, Begeleider) VALUES(IF(" . mysql_insert_id() ."=0, NULL," . mysql_insert_id() ."), $vPC, $vSlot, $vDatum, '$vBegeleider')"; $result = mysql_query($sql) or die("Ongeldige query (invoegen reservatie $vPC): " .mysql_error() . "<br/><br/>$sql"); $devFeedback .= $sql . "<br/>"; } |
Vraag:
Het probleem ligt duidelijk in het feit dat mySQL de teller niet ophoogt (aangezien hij hem wel correct ophaalt voor het eerste record, maar nadien dienst weigert). Iemand een idee hoe het komt en, meer nog, hoe op te lossen of te omzeilen?
Extra info:
een ander veld waarop een default value gespecifieerd is (datumveld met default value now()) blijft leeg (0 in dit geval)
thx 4 hlp
[ Voor 16% gewijzigd door edeboeck op 21-10-2005 14:24 . Reden: Benadrukken dat het veld niet vermelden ook al geprobeerd is. ]