PDO中事物处理

应用的方法如下:

开启事物——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>
		  
	<?php
if($_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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值