Die alte mysql-Erweiterung hat keine Funktionen speziell für die Transaktionskontrolle, aber Sie können SQL-Anweisungen absetzen, um zu tun, was Sie wollen.
Sie können Autocommit implizit für die Dauer einer Transaktion ausschalten, indem Sie einfach eine Transaktion starten:
mysql_query("START TRANSACTION");
Sobald Sie COMMIT oder ROLLBACK ausführen, kehrt der Autocommit-Modus zum Standard zurück.
mysql_query("COMMIT"); // or ROLLBACK
Sie können Autocommit für Ihre gesamte Sitzung deaktivieren, indem Sie eine Sitzungsvariable setzen:
mysql_query("SET autocommit=0");
Oder ändern Sie es global auf Ihrer MySQL-Instanz, sodass es die Standardeinstellung für alle Sitzungen ändert:
mysql_query("SET GLOBAL autocommit=0");
Oder stellen Sie es ein, um die globale Einstellung beim Start des MySQL-Dienstes zu ändern, indem Sie /etc/my.cnf:
bearbeiten[mysqld]
autocommit=0
Wenn Sie MySQL 5.1 verwenden, müssen Sie dies etwas anders machen:
[mysqld]
init_connect='SET autocommit=0'
Sie wissen es wahrscheinlich bereits, aber es muss wiederholt werden, dass Transaktionen nur dann etwas bedeuten, wenn Sie InnoDB-Tabellen verwenden. MyISAM-Tabellen unterstützen keine Transaktionen, daher werden sie immer automatisch festgeschrieben, unabhängig von Ihren Einstellungen. Das Gleiche gilt für mehrere andere Speicher-Engines, einschließlich MEMORY und CSV.