Da disse to indsættelser udføres uafhængigt, kan et andet program, der kører samtidig, se databasen i en tilstand, hvor den første indsættelse er udført, men den anden ikke er det.
Om dette er et problem eller ej, afhænger af applikationslogikken. I dit tilfælde er det svært at sige uden yderligere information. Sikkert ikke. En finansiel transaktion, der involverer to konti, er et eksempel, hvor dette er et problem:du ønsker ikke at summen af alle kontosaldi skal være forkert på noget tidspunkt.
Hvis du tror, du har brug for dette, kan du gøre operationen atomisk på bekostning af ydeevne:et andet program vil enten se databasen før den første indsættelse eller efter den anden indsættelse. Det fungerer sådan her:
$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
}
Lagermotoren skal understøtte transaktioner, dvs. den skal være InnoDB . Ellers vil dette lydløst ikke virke.