即将毕业的兄弟们,Liunx特级的我们!带你回忆PHP之_“PHP简单事务处理”

2012 年 9 月 7 日7010

转眼间,在兄弟连的学习已接近尾声...
近段时间我们在学Linux初级,天天跟着强哥走,那些命令,那些配置,LAMP环境的搭建,强哥一直很给力~很给力~
------------------------------------------------------------------------------------------------------------------------------------------------------------
话说回来,我们学习,主要应该会放在PHP和JavaScript上,对于Linux,它是一个操作系统,会用就OK了,不必很纠结那么多的为什么~~呵呵~~~当然学好Linux还是特么牛哈!
Linux还是把笔记做详细点,留着以后会用到的~~一直在强调做笔记,而我很少做笔记,我喜欢老师做的笔记,我会在老师笔记的基础上做修改,我感觉我看着很清晰~每个人学习方式不同罢了~~
------------------------------------------------------------------------------------------------------------------------------------------------------------
闲话扯完了,来点重点吧,本次主要分享
“PHP中事务的简单应用”
需要的兄弟,可以看看
下面直接就上代码了,需要附件的直接下载去[比较郁闷,为什么我每次上传个图片或者想分享个附件之类的,点击图片加载不出“上传图片按钮”],点击附件,加载不出[上传按钮或链接],可能是网速慢的问题吧..
------------------------------------------------------------------------------------------------------------------------------------------------------------

引用

<?php
/**
* @author yangyanfei <yangyf1990@163.com>
* 简单的事务处理
*/

/**
* 对于数据的操作,事务的处理,您还记得多少?
* 什么是事务?又如何使用事务.看下面操作
* 送给即将毕业的兄弟们,前面的知识,我们得拾起来!
*/

/**
* 数据库系统:MySQL
* 数据库操作:PDO
* 数据库:lamp39_test
* 表名:tb_t1[id,name,age] 表字段
* 使用事务 数据表需要更改为:InnoDB
*/

/**
* 这里主要测试多条语句的插入
*/

try{
$pdo = new PDO('mysql:host=localhost;dbname=lamp39_test','root','969696'); //pdo方式连接数据库

$pdo -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //修改PDO的报错模式,设置成异常方式

}catch(PDOException $pe){

die('数据库连接失败!'); //管他什么异常 直接不执行
}

try{
/**
* 重点1 请在箭头下方开启事务
* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
*/
$pdo -> beginTransaction();

$sql = 'insert into tb_t1(name,age) values(?,?)'; //组织sql语句 问号不理解的好好看看预处理吧

$stmt = $pdo -> prepare($sql); //预处理

$stmt -> execute(array('yangyanfei',22)); //先执行

$stmt -> execute(array('lamp39',2007));

/**
* 报错的预处理情况
* $sql = 'insert into tb_t1(id,name,age) values(?,?,?)'; //组织sql语句 问号不理解的好好看看预处理吧
* $stmt = $pdo -> prepare($sql); //预处理
* $stmt -> execute(array(1,'yangyanfei',22)); //先执行
* $stmt -> execute(array(1,'lamp39',2007));
* 解释:因为id是主键,主键设置一样是肯定出错的
* 这是我测试的结果:
* sql执行失败:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 1
*/

/**
* 重点2 请在箭头下方提交事务
* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
*/
$pdo -> commit();

}catch(PDOException $pe){
/**
* 重点3 事务一旦出现问题 箭头下方处理
* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
*/
$pdo -> rollBack(); //事务回滚[撤销所有的SQL操作]

die('sql执行失败:'.$pe->getMessage()); //提示性错误

}

/**
* 到这基本一个简单的事务处理就完事了,对兄弟们提一下几点建议
* 养成好的编程习惯
* 1:PHP中定义一个变量 [例如$test = "test";] 能用单引号就用单引号,单引号比双引号的处理效率要高...
* 2:<?php ?> 如果一个页面全是PHP的代码段,最后也把人家最后的结束标记 ?> 给带上,麻烦不了多少的...
* 3:写代码什么都可以乱来,唯独注释,一定要尽量加的,让不会代码的人看到你的代码,像是阅读文档...
*/
?>

--------------------------------------------------------------------------------------
未完,待续...........

0 0