Stare rozszerzenie mysql nie ma funkcji przeznaczonych specjalnie do kontroli transakcji, ale możesz wydawać polecenia SQL, aby robić to, co chcesz.
Możesz domyślnie wyłączyć automatyczne zatwierdzanie na czas trwania jednej transakcji, po prostu rozpoczynając transakcję:
mysql_query("START TRANSACTION");
Zaraz po COMMIT lub ROLLBACK, tryb automatycznego zatwierdzania powróci do ustawień domyślnych.
mysql_query("COMMIT"); // or ROLLBACK
Możesz wyłączyć automatyczne zatwierdzanie dla całej sesji, ustawiając zmienną sesji:
mysql_query("SET autocommit=0");
Lub zmień go globalnie w swojej instancji MySQL, aby zmieniał ustawienie domyślne dla wszystkich sesji:
mysql_query("SET GLOBAL autocommit=0");
Lub ustaw go, aby zmienić ustawienia globalne podczas uruchamiania usługi MySQL, edytując /etc/my.cnf:
[mysqld]
autocommit=0
Jeśli używasz MySQL 5.1, musisz to zrobić nieco inaczej:
[mysqld]
init_connect='SET autocommit=0'
Pewnie już wiesz, ale warto powtórzyć, że transakcje mają znaczenie tylko wtedy, gdy używasz tabel InnoDB. Tabele MyISAM nie obsługują transakcji, więc zawsze są zatwierdzane automatycznie, niezależnie od ustawień. To samo z kilkoma innymi silnikami pamięci masowej, w tym MEMORY i CSV.