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