Ponieważ te dwa wstawiania są wykonywane niezależnie, inny program działający równolegle może zobaczyć bazę danych w stanie, w którym pierwsze wstawienie zostało wykonane, a drugie nie.
To, czy jest to problem, czy nie, zależy od logiki aplikacji. W Twoim przypadku trudno to stwierdzić bez dodatkowych informacji. Prawdopodobnie nie. Transakcja finansowa obejmująca dwa konta jest przykładem, w którym jest problem:nie chcesz, aby suma wszystkich sald kont była w każdej chwili błędna.
Jeśli uważasz, że tego potrzebujesz, możesz uczynić operację niepodzielną kosztem wydajności:inny program zobaczy bazę danych przed pierwszym wstawieniem lub po drugim wstawieniu. Działa to tak:
$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
}
Silnik pamięci masowej musi obsługiwać transakcje, tj. musi to być InnoDB . W przeciwnym razie to po cichu nie zadziała.