本帖最后由 funjohn 于 2010-08-10 22:48:38 编辑

解决方案 »

  1.   

    START TRANSACTION
    开始事务。
      

  2.   

    把列加上试试begin
       
    insert into user(col1,col2...) values(id,username,userpwd,now(),0);
    insert into userdetails(col1,col2...) values(id,'',0,now(),0,'');
    insert into userbbs(col1,col2...) values(id,0,0,0,0,0,now(),'','',0,0);
    insert into userworkexperience(col1,col2...) values(now(),'',id);end
      

  3.   

    别用begin 开始事务用start 开始事务
      

  4.   

    我要的不是这个.
    我要的是捕捉错误然后rollback
    如果只是开始事务结束事务 在一些代码执行的时候会吧没有出错的代码运行.
      

  5.   

    存储过程中 可以使用出错处理 
    DECLARE type HANDLER FOR condition1,condition2,......,commond
      

  6.   

    麻烦那个大大帮我吧代码补齐 谢谢.
    我知道各位都是高手.
    我初学 才开始用PHP实在对MYSQL一窍不通.
    补全给分.谢谢
      

  7.   


    create PROCEDURE aa(SqlCMD1 varchar(8000),SqlCMD2 varchar(8000),SqlCMD3 varchar(8000))
    begin 
        declare exit handler for sqlexception rollback;
        start TRANSACTION;
        
        PREPARE stmt_name FROM SqlCMD1;
        EXECUTE stmt_name;
        DEALLOCATE stmt_name;
        PREPARE stmt_name FROM SqlCMD2;
        EXECUTE stmt_name;
        DEALLOCATE stmt_name;
        PREPARE stmt_name FROM SqlCMD3;
        EXECUTE stmt_name;
        DEALLOCATE stmt_name;
        COMMIT;
    end#drop PROCEDURE aa