to  piner(天下加油站) 
   4)是单独的一个事务,并且只是select, 我觉得对其他的操作不应该产生影响啊
to butcher2002(发言仅代表个人观点,不保证正确) 
   什么意思?能不能解释清楚一些?

解决方案 »

  1.   

    $db = new DB;$db->query(update tb set a='a' where id=1);
    $db->query(update tb set b='b' where id=2);
    $db->query(update tb set c='c' where id=3);$db-> commit();你说这样会不会三个语句都执行呢?你用的是同一个会话,所以在4)做commit,3)会更新成功是没错的
      

  2.   

    如果是用的一个connect,当然可以理解。
    可是4)和其他的语句用的不是一个connect。况且,我在5)也做了commit,为什么如果4)不做commit, 3)就会失败呢?
    难道我对事务的概念理解有误?
      

  3.   

    oracle函数库.呵呵,还在学习中.
      

  4.   

    唉,终于找到答案了。原因是在PHP里面,一个transaction没有结束前,再去连接同一个DB的话就会出问题,导致前一个连接关闭。所以正确的应该是在4)中不用新建立连接,而是使用既存的连接。