如何在php中利用pdo对事务进行处理

  介绍

如何在php中利用pdo对事务进行处理?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体如下:

<强>实例1:

try {} catch(){}形式

& lt; php ?   时间=美元dsn  & # 39; mysql: dbname=cheyun_cms;主机=127.0.0.1 # 39;;   时间=美元user  & # 39;根# 39;;=$ password  & # 39; 111111 & # 39;;//采用预处理+事务处理执行SQL操作//1 .连接数据库   try  {   时间=美元才能pdo  new  PDO(用户dsn美元,,,,美元密码);   pdo→美元才能setAttribute (pdo:: ATTR_ERRMODE, pdo:: ERRMODE_EXCEPTION);   },catch  (PDOException  $ e), {   死才能(“数据库连接失败“。e→美元getMessage ());   }//2 .执行数据操作   尝试{//开才能启事物,此时会关闭自动提交   pdo→美元才能beginTransaction ();   sql 美元;=,才能“insert  into  cy_log  (logid、,价值,行动,,文件),values  (?, ?, ?, ?)“;   美元才能stmt =, pdo→美元准备($ sql);//传才能入参数   →美元支撑才能执行(数组(null,“test4",“w" (11));   →美元支撑才能执行(数组(null,“test5",“w" (11));   →美元支撑才能执行(数组(null,“test3",“w" (11));//才能提交事物,并且,数据库连接返回到自动提交模式   pdo→美元才能提交();   }捕捉(PDOException  $ e) {   echo  & # 39;才能执行失败& # 39;。e→美元getMessage ();//才能如果数据库被设置成自动提交模式,rollback 在回滚事务之后将恢复自动提交模式。//才能包括,MySQL 在内的一些数据库,,当在一个事务内有类似删除或创建数据表等,DLL 语句时,会自动导致一个隐式地提交。//才能隐式地提交将无法回滚此事务范围内的任何更改。即,DDL 语句无法回滚   pdo→美元才能回滚();   }

<>强实例2:

if…else…形式

& lt; php ?   时间=美元dsn  & # 39; mysql: dbname=cheyun_cms;主机=127.0.0.1 # 39;;   时间=美元user  & # 39;根# 39;;=$ password  & # 39; 111111 & # 39;;//采用预处理+事务处理执行SQL操作//1 .连接数据库   try  {   时间=美元才能pdo  new  PDO(用户dsn美元,,,,美元密码);   },catch  (PDOException  $ e), {   死才能(“数据库连接失败“。e→美元getMessage ());   }//2 .执行数据操作//开启事物   pdo→美元beginTransaction ();   sql 美元;=,“insert  into  cy_log  (logid、,价值,行动,,文件),values  (?, ?, ?, ?)“;   美元$ stmt =, pdo→准备($ sql);   $ datalist =,阵列(   ,,阵列(null,“test9",“w", 11),   ,,阵列(null,“test10",“w", 11),   ,,阵列(null,“test11",“w", 11)   );//是否提交标志位=$ isCommit 真实;   foreach (datalist 美元;as  $ data) {   →美元支撑才能执行(元数据);   如果才能($支撑→errorCode()在0){   ,,,//回滚   ,,,pdo→美元rollback ();   ,,,isCommit 美元;=,假;   ,,,休息;   ,,}   }   如果(isCommit美元){//才能提交事物   pdo→美元才能提交();   }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

如何在php中利用pdo对事务进行处理