PDO中事物处理

来源:互联网 发布:php mysql 三表联查 编辑:程序博客网 时间:2024/05/01 16:45

应用的方法如下:

开启事物——beginTransaction()方法

beginTransaction()方法将关闭自动提交(autocommit)模式,直到事务提交或者回滚以后才恢复。

提交事务——commit()方法

Commit()方法完成事务的提交操作,成功则返回true,否则返回false

事务回滚——rollBack()方法

roolBack()方法执行事务的回滚操作。

通过prepare()execute()方法向数据库中添加数据,并且通过事务处理机制确保数据能够正确地添加到数据库。

例:

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>PDO中进行事务的处理</title><style type="text/css"><!--body,td,th {font-size: 12px;}--></style></head><body><table id="__01" width="464" height="336" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="3"><img src="images/mysql_01.gif" width="464" height="139" alt=""></td></tr><tr><td><img src="images/mysql_02.gif" width="78" height="136" alt=""></td><td width="312" height="136" valign="top"><form id="form1" name="form1" method="post" action="index.php"><table width="310" border="0" cellpadding="0" cellspacing="0">          <tr>            <td height="30" align="right">类型:</td>            <td align="left"><input name="pdo" type="text" id="pdo" size="20" /></td>          </tr>          <tr>            <td height="25" align="right">数据库:</td>            <td align="left"><input name="databases" type="text" id="databases" size="20" /></td>          </tr>          <tr>            <td height="25" align="right">时间:</td>            <td align="left"><input name="dates" type="text" id="dates" size="20" /></td>          </tr>          <tr>            <td height="30" colspan="2" align="center"><input type="submit" name="Submit" value="提交" />     <input type="reset" name="Submit2" value="重置" /></td>          </tr>  <?phpif($_POST['Submit']=="提交" && $_POST['pdo']!=""){$dbms='mysql';     //数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数$host='127.0.0.1'; //数据库主机名$dbName='sina';    //使用的数据库$user='root';      //数据库连接用户名$pass='miniserver';          //对应的密码$dsn="$dbms:host=$host;dbname=$dbName";try {    $pdo = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo$pdo->beginTransaction();//开启事务$query="insert into message1(ID,content,posttime)values('".$_POST['pdo']."','".$_POST['databases']."','".$_POST['dates']."')";$result=$pdo->prepare($query);if($result->execute()){echo "数据添加成功!";}else{echo "数据添加失败!";}$pdo->commit();//执行事务的提交操作} catch (PDOException $e) {  die ("Error!: " . $e->getMessage() . "<br/>");    $pdo->rollBack();//执行事务的回滚}}  ?>        </table></form></td><td><img src="images/mysql_04.jpg" width="74" height="136" alt=""></td></tr><tr><td colspan="3"><img src="images/mysql_05.gif" width="464" height="61" alt=""></td></tr></table></body></html>


0 0