Protože se tyto dvě vložení provádějí nezávisle, jiný souběžně běžící program může vidět databázi ve stavu, kdy je první vložení dokončeno, ale druhé nikoli.
Zda se jedná o problém nebo ne, závisí na aplikační logice. Ve vašem případě je těžké říci bez dalších informací. Asi ne. Finanční transakce zahrnující dva účty jsou příkladem, kde to je problém:nechcete, aby součet všech zůstatků na účtu byl kdykoli nesprávný.
Pokud si myslíte, že to potřebujete, můžete operaci udělat atomickou za cenu výkonu:jiný program buď uvidí databázi před prvním vložením, nebo po druhém vložení. Funguje to takto:
$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
}
Úložný modul musí podporovat transakce, tj. musí to být InnoDB . Jinak to tiše nebude fungovat.