在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();
}
}
?>
|