$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
Убедитесь, что ваши таблицы используют InnoDB
engine: MyISAM
не поддерживает транзакции.
Обновление комментария :
InnoDB
- это один из двух основных механизмов хранения, используемых MySQL
, другой - MyISAM
.
MySQL
поставляется с поддержкой InnoDB
, скомпилированной по умолчанию, и фактически для ее отключения требуется некоторое усилие.
Я никогда не слышал о MySQL
с отключенным InnoDB
даже самым дешевым из хостеров.