介绍
如何在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→美元才能提交(); }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。