Poiché questi due inserimenti vengono eseguiti indipendentemente, un altro programma in esecuzione contemporaneamente potrebbe vedere il database in uno stato in cui il primo inserimento è terminato ma il secondo no.
Se questo è un problema o meno dipende dalla logica dell'applicazione. Nel tuo caso è difficile dirlo senza ulteriori informazioni. Probabilmente no. Una transazione finanziaria che coinvolge due conti è un esempio in cui questo si trova un problema:non vuoi che la somma di tutti i saldi del conto sia errata in qualsiasi momento.
Se ritieni di aver bisogno di questo, puoi rendere l'operazione atomica a scapito delle prestazioni:un altro programma vedrà il database prima del primo inserimento o dopo il secondo inserimento. Funziona così:
$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
}
Il motore di archiviazione deve supportare le transazioni, ovvero deve essere InnoDB . Altrimenti questo non funzionerà silenziosamente.