在PDO 中同样可以实现事务处理的功能,其应用的方法如下:
(1) 开启事务——beginTransaction()方法。
beginTransaction()方法将关闭自动提交(autocommit)模式,直到事务提交或者回滚以后才恢复。大理石平台价格表
(2)提交事务——commit()方法
commit()方法完成事务的提交操作,成功返回true,否则返回false。
(3)事务回滚——rollBack()方法
rollBack()方法执行事务的回滚操作。
通过 prepare()和 execute()方法向数据库中添加数据,并且通过事务处理机制确保数据能够正确的添加到数据库中,具体步骤如下:
创建一个php文件,首先定义数据库连接参数,创建 try{...}catch{...}语句,在try{}语句中实例化 PDO构造函数,完成与数据库的连接,并且通过 beginTransaction()方法开启事务,然后定义INSERT 添加语句,通过$_POST[]方法获取表单中提交的数据,通过prepare()和 execute()方法向数据库中添加数据,并且通过commit(0方法完成事务的提交操作,最后 在catch{}语句中返回错误信息,并且通过 rollBack()方法执行事务的回滚操作,具体代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<form action="3.php" name="form1" method="post">
用户名:<input type="text" name="username">
密码: <input type="password" name="password">
<input type="submit" name="Submit" value="提交">
</form>
<?php
header("Content-Type:text/html; charset=utf-8");
$name =$_POST['username'];
$password =$_POST['password'];
if($_POST['username']!=""&&$_POST['password']!=""){
$dbms = "mysql";
$dbName ="php_cn";
$user = "root";
$pwd = "root";
$host = "localhost";
$dsn = "$dbms:host=$host;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);
$pdo -> beginTransaction();
$query="insert into `user`(username,password) VALUES ('$name','$password')";
$res=$pdo->prepare($query);
$res->execute();
if($res->errorCode()){
echo "数据添加成功";
}else{
echo "数据添加失败";
}
$pdo->commit();
}catch (PDOException $e){
die("Error!:".$e->getMessage().'<br>');
$pdo -> rollBack();
}
}
?>
|