我用的ODBC可以做事务。
try{
autocommit(id,0);
....
commit(id);
...
}catch(e){
roolback(id);
}

解决方案 »

  1.   

    楼上说得ODBC是指什么,ODBC连接吗?
    php里可以用try吗,我还真的不知道
      

  2.   

    rollback是mysql4.1后才出现的,包括4.1
    就是数据库的事务
    try是PHP5以后出现的下面是个例子
    mysql> SET AUTOCOMMIT=0;
    mysql> INSERT INTO CUSTOMER VALUES (1, 'mynamesucks');
    mysql> ROLLBACK;
      

  3.   

    楼上的,你说得这个方法我昨天在mysql5里试过了,可是没有成功
      

  4.   

    你的表的类型是什么
    要innodb类型的表才能支持事务
    还有个好象是BDB,但是没用过
      

  5.   

    要mysql4.1以上,而且是要事务表.
      

  6.   

    事务表就是innodb类型和BDB类型吗
      

  7.   

    试过了,innodb类型和BDB类型是可以实现rollback,但是myisam类型不能实现
      

  8.   

    这三种类型到底有什么区别,我如果把myisam类型改成innodb或者bdb类型,在php的程序里需要注意什么
      

  9.   

    rollback是mysql中事务操作时失败的返回参数
      

  10.   

    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;');
      

  11.   

    哦 对了
    START TRANSACTION was added in MySQL 4.0.11