PDO数据访问抽象层(下)

PDO两大功能

一、事务功能

PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作

1、造对象

1
2
3
4
<?php
$dsn  "mysql:dbname=crud;host=localhost" ;
$pdo  new  PDO( $dsn , "root" , "123" );
?>

2、设置异常模式

1
$pdo ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

3、开始写事务

1
2
3
4
5
6
7
8
9
10
11
12
try {
     $pdo ->beginTransaction(); //开启事务
     $sql  "insert into nation values('n001','神族')" ; //数据库中有n001
     $sql1  "insert into nation values('n005','人族')" ; //一条错误全都失败不添加
     $pdo ->query( $sql );
     $pdo ->query( $sql1 );
} catch (Exception  $e ){
     //抓住出现的错误,并且处理
     echo  $e ->getMessage(); //获取异常信息;
     //回滚到最开始
     $pdo ->rollBack();
}

 主键重复

二、防止SQL注入攻击

1、?占位符:数组必须是索引数组

SQL语句里需要加占位符

1
2
3
4
5
6
7
8
<?php
$dsn  "mysql:dbname=crud;host=localhost" ;
$pdo  new  PDO( $dsn , "root" , "123" );
$sql  "insert into nation values(?,?)" ;
$st  $pdo ->prepare( $sql ); //讲sql语句放到服务器等待执行
$attr  array ( "n005" , "人族" );
$st ->execute( $attr );
?>

 

2、字符串方式:数组必须是关联数组

1
2
3
4
5
6
7
8
<?php
$dsn  "mysql:dbname=crud;host=localhost" ;
$pdo  new  PDO( $dsn , "root" , "123" );
$sql  "insert into nation values(:code,:name)" ;
$st  $pdo ->prepare( $sql ); //讲sql语句放到服务器等待执行
$attr  array ( "code" => "n006" , "name" => "神族" ); //关联数组
$st ->execute( $attr );
?>

 

转载于:https://www.cnblogs.com/palpitate/p/8371201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值