pdo预处理和事务

<?php 
$pdo = new PDO("mysql:host=127.0.0.1;dbname=school;",'root','root');//连接数据库




//$sql = "insert into teacher (teacher_name) values (:name)";   //第一种传递值的方式
$sql = "insert into teacher (teacher_name) values (?)";//第二种




$stmt = $pdo->prepare($sql);//提交sql语句




//$stmt->bindValue("name","张三");//相应的绑定值的方式
//$stmt->bindValue("1","张三");//相应的绑定值的方式


//或者绑定参数
$name = "张四";
$stmt->bindParam(1,$name);

echo $stmt->execute();

 ?>

下面是简单的PDO的事务:


1、关闭 PDO 的自动提交;

?

$pdo ->setAttribute(PDO::ATTR_AUTOCOMMIT, false);

2、开启一个事务需要的方法;

?

$pdo ->beginTransaction(); // 开启一个事务
$pdo ->commit(); // 提交事务
$pdo ->rollback(); // 回滚事务

3、一般事务处理是运行在 try...catch...语句中,当事务失败时执行 catch 代码段。

?

<?php
try {
   $pdo ->beginTransaction(); // 开启一个事务
   $row = null;
   $row = $pdo -> exec ( "xxx" ); // 执行第一个 SQL
   if (! $row )
     throw new PDOException( '提示信息或执行动作' ); // 如出现异常提示信息或执行动作
   $row = $pdo -> exec ( "xxx" ); // 执行第二个 SQL
   if (! $row )
     throw new PDOException( '提示信息或执行动作' );
   $pdo ->commit();
} catch (PDOException $e ) {
   $pdo ->rollback(); // 执行失败,事务回滚
   exit ( $e ->getMessage());
}
?>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值