Aangezien deze twee invoegingen onafhankelijk van elkaar worden uitgevoerd, kan een ander programma dat gelijktijdig wordt uitgevoerd de database in een staat zien waarin de eerste invoeging is voltooid, maar de tweede niet.
Of dit een probleem is of niet, hangt af van de toepassingslogica. In jouw geval is het moeilijk te zeggen zonder aanvullende informatie. Waarschijnlijk niet. Een financiële transactie waarbij twee rekeningen betrokken zijn, is een voorbeeld waarbij dit is een probleem:u wilt niet dat de som van alle rekeningsaldi op enig moment verkeerd is.
Als je denkt dat je dit nodig hebt, kun je de bewerking atomair maken ten koste van de prestaties:een ander programma zal de database ofwel zien vóór de eerste invoeging, of na de tweede invoeging. Het werkt als volgt:
$result = FALSE;
if (mysql_query('BEGIN')) {
if (mysql_query($query1) &&
mysql_query($query2))
$result = mysql_query('COMMIT'); // both queries looked OK, save
else
mysql_query('ROLLBACK'); // problems with queries, no changes
}
De opslagengine moet transacties ondersteunen, d.w.z. het moet InnoDB . Anders zal dit stilzwijgend niet werken.