此文章主要向大家描述的是PHP + MySQL事务操作的实际应用代码演示,如果你对PHP + MySQL事务操作的实际应用代码感兴趣的话,以下的文章就可以帮助你了。

+以下的文章主要向大家描述的是PHP + MySQL事务操作的实际应用代码演示,我们大家都知道在实际LAMP的应用中,一般PHP所使用的是AdoDB来对MySQL数据库进行操作,下面给出AdoDB相应的代码方便大家查阅:

PHP + MySQL事务操作的实际应用代码演示(请简述使用php进行mysql数据库编程的基本步骤)  MySQL 第1张

  1. <?php
  2. //...
  3. $adodb->startTrans();

实际,getOne所调用的查询也可以直接放到rowLock来进行,这里只是为了演示效果能更明显些。

  1. $adodb->rowLock('book','book_id=123');
  2. $bookNumber=$adodb->getOne("SELECTbook_numberFROMbookWHEREbook_id=123");
  3. $adodb->execute("UPDATEbookSETbook_numberbook_number=book_number-1WHEREbook_id=123");
  4. $adodb->completeTrans();
  5. //...
  6. ?>

其中,rowLock的方法就是调用的FOR UPDATE来实现的行锁,你可能会想把“FOR UPDATE”直接写到$adodb->getOne()调用的那条SQL语句里面去实现行锁的功能,不错,那样确实可以,但是并不是所有的数据库都使用“FOR UPDATE”语法来实现行锁功能,比如Sybase使用“HOLDLOCK”的语法来实现行锁功能,所以为了你的数据库抽象层保持可移植性,我还是劝你用rowLock来实现行锁功能,至于可移植性就交给AdoDB好了,嗯,有点扯远了,今儿就说到这里了。

上述的相关内容就是对PHP + MySQL事务操作的代码演示的描述,希望会给你带来一些帮助在此方面。

附:

AdoDB中存在一个setTransactionMode()方法,能够设置事务的隔离级别,如下:

  1. SetTransactionModeallowsyoutopassinthetransactionmodetouseforall
    subsequenttransactionsforthatconnectionsession.Note:ifyouhavepersistent
    connectionsandusingmysqlormssql,youmighthavetoexplicitlyresetyour
    transactionmodeatthebeginningofeachpagerequest.Thisisonlysupportedinpostgresql,
    mssql,mysqlwithInnoDBandoci8currently.Forexample:
  2. $db->SetTransactionMode("SERIALIZABLE");
  3. $db->BeginTrans();
  4. $db->Execute(...);$db->Execute(...);
  5. $db->CommiTrans();
  6. $db->SetTransactionMode("");//restoretodefault
  7. $db->StartTrans();
  8. $db->Execute(...);$db->Execute(...);
  9. $db->CompleteTrans();
  10. Supportedvaluestopassin:
  11. *READUNCOMMITTED(allowsdirtyreads,butfastest)
  12. *READCOMMITTED(defaultpostgres,mssqlandoci8)
  13. *REPEATABLEREAD(defaultmysql)
  14. *SERIALIZABLE(slowestandmostrestrictive)

以上的相关内容就是对PHP + MySQL事务操作的代码演示的介绍,望你能有所收获。

【编辑推荐】

  1. MySQL命令导数据的实际操作与代码
  2. MySQL基本操作,新手入门宝典
  3. MySQL常用命令大汇总
  4. MySQL数据库安全设置的操作流程
  5. 实现MySQL 用户密码的设置步骤
转载请说明出处
知优网 » PHP + MySQL事务操作的实际应用代码演示(请简述使用php进行mysql数据库编程的基本步骤)

发表评论

您需要后才能发表评论