数据库事务我看过,意思就是几个操作要么都执行,要么都不执行
但到实际应用上就没怎么想通
比如一个转帐程序,肯定是要求,取和存同时执行
数据库事务这里没问题
但我程序里怎么写呢?
如果我写了一个取的程序,再写一个存的语句,但这样写的话算同时执行吗?
我的思路有些混乱,帮我理一下,就是程序这里不会写

解决方案 »

  1.   

    只能写在同一个事务中,程序中先 BEGIN TRANSACTION, 然后做完所有 取和存 ,然后再 COMMIT
    不算
      

  2.   

    存取写在1个事务中,出现任何错误都要rollback,全都成功了之后才去commit
      

  3.   

    也就是说除了写数据库事务外,PHP里面也要把存和取写成事务并且加锁
    没错吧!!是这个意思??
      

  4.   

    意思是不是PHP程序里写了事务就不需要再写数据库事务了??
    那我要是在数据库里写了事务,程序里不写事务的话,行吗?又该怎么写呢??
      

  5.   

    表达有点费解
    对数据库来说,事务的控制也是一条条SQL语句, 统一的格式是BEGIN TRANSACTION ... COMMIT/ROLLBACK你可以将整个事务流程写在一个数据库的存储过程中,也可以一条条写在PHP语句里发送给数据库,也可以一半写在存储过程中,一半写在存储过程外. 对于数据库,没有本质的差别,只是效率的问题
      

  6.   

    不写存储过程就在PHP里写,取和存语句是否一定要写在PHP事务中??
    效率的话,是写存储过程高,还是别的高??
      

  7.   

    最后我再问下,如果我写了PHP事务或者写了存储过程,那么数据库事务还用写吗
      

  8.   

    数据库就不用写了
    注意更新语句的where条件
      

  9.   

    对于数据库,他只接受SQL语句,用PHP写也好,用存储过程写也好,最终执行的都是SQL语句,所以我搞不清楚为什么你还要分PHP事务和数据库事务
      

  10.   

    对啊!
    我只能这样理解,写PHP事务或存储过程是为了执行操作
    写数据库事务是为了防止一旦程序被破坏或改动,影响了原来的PHP事务,而使数据库记录不被破坏