Transaction 事务:MySQL Server (version 3.23-max and all versions 4.0 and above) supports transactions with the InnoDB and BDB transactional storage engines.也就是说,表要InnoDB 然后 顶mynamesucks具体来说 Auto Commit是说默认每条insert, update, delete都会直接生效,但是在用transaction事务处理的时候,需要先把AUTOCOMMIT置零. 可以用SET, 也可以用START TRANSACTION;START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summary=@A WHERE type=1;然后可以 COMMIT; 确认操作或者 ROLLBACK; 取消操作 用 mysql_query('START TRANSACTION;'); mysql_query($update_operations); // ... if ($all_success) mysql_query('COMMIT;'); else mysql_query('COMMIT;');
php里可以用try吗,我还真的不知道
就是数据库的事务
try是PHP5以后出现的下面是个例子
mysql> SET AUTOCOMMIT=0;
mysql> INSERT INTO CUSTOMER VALUES (1, 'mynamesucks');
mysql> ROLLBACK;
要innodb类型的表才能支持事务
还有个好象是BDB,但是没用过
然后 顶mynamesucks具体来说
Auto Commit是说默认每条insert, update, delete都会直接生效,但是在用transaction事务处理的时候,需要先把AUTOCOMMIT置零. 可以用SET, 也可以用START TRANSACTION;START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;然后可以 COMMIT; 确认操作或者 ROLLBACK; 取消操作
用
mysql_query('START TRANSACTION;');
mysql_query($update_operations);
// ...
if ($all_success)
mysql_query('COMMIT;');
else
mysql_query('COMMIT;');
START TRANSACTION was added in MySQL 4.0.11