面向对象第七天----数据库抽象层PDO
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象第七天----数据库抽象层PDO相关的知识,希望对你有一定的参考价值。
数据库抽象层--PDO (重点)
=======================================================================
1. pdo的作用
pdo(php data object) 扩展类库,为PHP访问数据库提供了轻量级的,统一的接口。无论使用
什么数据库,都可以通过一致的函数执行查询和获取数据
优势:
① 对不同的数据库提供统一的操作方式
② 对执行批量SQL效率高,对PHP操作SQL进行优化
③ PDO提供了预处理机制,提高安全性 防止SQL注入
劣势:
学习难度大
mysqli 和 pdo 比较
① 处理海量数据 PDO效率高
② 多并发操作 PDO 效率高
2. pdo的安装(直接过)
①php.ini 开启 extension=php_pdo.dll extension=php_pdo_mysql.dll
②重启apache
3. 创建PDO对象
3.1 以多种方式调用构造方法
DSN : data source name 数据库类型 host dbname
① 直接在构造方法中传入DSN USER PASS
mysql:host=localhost;dbname=s44
② 在php.ini的[PDO]中定义:
再看看
③ 写配置文件定义常量
将参数写成常量 dbconfig.php 中引入
3.2 PDO与链接相关的选项
设置连接数据的值: setAttribute(attrname/attrnum,attrname/attrnum);
获取连接属性的值(两种方式): getAttribute() (推荐使用) 或者 new PDO 第四个参数
① 错误处理方式 PDO::ATTR_ERRMODE
② 是否自动提交 PDO::ATTR_AUTOCOMMIT
③ 结果集数组方式 PDO::ATTR_DEFAULT_FETCH_MODE
3.3 PDO的字符集设置
$pdo->exec(‘set names utf8‘);
或者
$pdo->query(‘set names utf8‘);
3.3 PDO的错误处理模式 针对下面SQL执行部分
设置 PDO::ATTR_ERRMODE
值: PDO::ERRMODE_SILENT 不报错(默认)
值: PDO::ERRMODE_WARNING 警告
值: PDO::ERRMODE_EXCEPTION 异常(推荐)
echo ‘默认的错误模式值是:‘.$pdo->getAttribute(PDO::ATTR_ERRMODE).‘<BR>‘.‘<br>‘;//默认的错误模式值是:0
echo ‘不报错模式的值是:‘.PDO::ERRMODE_SILENT.‘<BR>‘.‘<br>‘;//不报错模式的值是:0
echo ‘WARNING错模式的值是:‘.PDO::ERRMODE_WARNING.‘<BR>‘.‘<br>‘;// WARNING错模式的值是:1
echo ‘异常模式模式的值是:‘.PDO::ERRMODE_EXCEPTION.‘<BR>‘.‘<br>‘;//异常模式模式的值是:2
3.4 PDO对象中的成员方法
query() //执行查询操作
exec() //执行写入操作
setAttribute() //设置连接属性
getAttribute() //获取连接属性
lastInsertId() //获取最后插入ID
4. PDOStatment 对象
4.1 PDOStatmen中的成员方法
fetch
fetchALl
4.2 设置返回结果的数组类型
PDO::FETCH_ASSOC
PDO::FETCH_NUM
PDO::FETCH_BOTH
PDO::FETCH_OBJ stdClass填充属性
//默认的遍历数组的模式 是 BOTH:3
echo ‘默认的遍历数组的模式 是 BOTH:‘.$pdo->getAttribute(PDO::ATTR_DEFAULT_FETCH_MODE).‘<BR>‘.‘<BR>‘;
echo ‘关联数组模式的ASSOC值是 ‘.PDO::FETCH_ASSOC.‘<BR>‘.‘<BR>‘; //关联数组模式的ASSOC值是 2
ECHO ‘索引数组模式NUM的值是 :‘.PDO::FETCH_NUM.‘<BR>‘.‘<BR>‘;//索引数组模式NUM的值是 :3
ECHO ‘所有模式的BOTH值是:‘.PDO::FETCH_BOTH.‘<BR>‘.‘<BR>‘;//所有模式的BOTH值是:4
ECHO ‘对象模式OBJ的值是:‘.PDO::FETCH_OBJ.‘<BR>‘.‘<BR>‘;//对象模式OBJ的值是:5
4.3 pdo处理结果集方式
1、fetch 遍历
2、fetchAll 全部获取
3、直接遍历$stmt对象
5. pdo预处理的使用(重点)
5.1 预处理的优点
防止SQL注入
批处理能够提高SQL处理效率
5.2 预处理的步骤
1、准备SQL 用占位符 代替条件参数 (? / :name )
2、执行预处理 prepare 返回PDOstatement对象
3、执行绑定参数
4、执行SQL
5.3 预处理sql方式
5.4 绑定参数的方式
5.5 对查询结果进行绑定
6. pdo事务机制
6.1 MySQL 事务
6.2 MYSQL客户端中操作过程:
6.3 PDO 中使用事务
以上是关于面向对象第七天----数据库抽象层PDO的主要内容,如果未能解决你的问题,请参考以下文章