PHP + MySQL事务操作的实际应用代码演示

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

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

 

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

 

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

 

  1. $adodb->rowLock('book', 'book_id = 123');   
  2. $bookNumber = $adodb->getOne("SELECT book_number FROM book WHERE book_id = 123");   
  3. $adodb->execute("UPDATE book SET book_numberbook_number = book_number - 1 WHERE book_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. SetTransactionMode allows you to pass in the transaction mode to use for all 
    subsequent transactions for that connection session. Note: if you have persistent 
    connections and using mysql or mssql, you might have to explicitly reset your 
    transaction mode at the beginning of each page request. This is only supported in postgresql, 
    mssql, mysql with InnoDB and oci8 currently. For example:  
  2. $db->SetTransactionMode("SERIALIZABLE");  
  3. $db->BeginTrans();  
  4. $db->Execute(...); $db->Execute(...);  
  5. $db->CommiTrans();  
  6. $db->SetTransactionMode(""); // restore to default  
  7. $db->StartTrans();  
  8. $db->Execute(...); $db->Execute(...);  
  9. $db->CompleteTrans();  
  10. Supported values to pass in:  
  11. * READ UNCOMMITTED (allows dirty reads, but fastest)  
  12. * READ COMMITTED (default postgres, mssql and oci8)  
  13. * REPEATABLE READ (default mysql)  
  14. * SERIALIZABLE (slowest and most restrictive)   

 

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

【编辑推荐】

  1. MySQL命令导数据的实际操作与代码
  2. MySQL基本操作,新手入门宝典
  3. MySQL常用命令大汇总
  4. MySQL数据库安全设置的操作流程
  5. 实现MySQL 用户密码的设置步骤
责任编辑:佚名 来源: cnblogs
相关推荐

2010-05-18 17:24:44

MySQL修改表字段

2010-06-02 13:22:18

MySQL定时任务

2010-06-12 09:53:19

2010-06-10 13:04:31

2010-06-07 16:22:55

MySQL数据库

2009-12-02 19:51:54

PHP Switch语

2010-06-02 13:33:19

MySQL 查询缓存

2010-05-28 10:34:39

连接MySQL数据库

2010-05-27 10:35:09

查询MySQL数据

2010-03-05 13:48:24

Python for

2010-05-18 16:29:44

MySQL修改表

2010-06-02 17:46:54

MySQL 查询缓存

2010-06-01 10:47:21

连接MySQL数据库

2010-05-27 17:35:36

MYSQL DELET

2010-05-17 09:25:34

MySql 编码设置

2010-05-18 09:31:05

MySQL修改表

2010-05-28 18:16:43

MySQL 操作日志

2010-05-12 09:42:24

MySQL 列值比较

2009-11-26 09:06:35

PHP递归数组

2010-05-27 14:35:25

MySQL批量导入
点赞
收藏

51CTO技术栈公众号