PDO

PDO

PDO        PHP Data Object(php数据对象)

就是别人已经封装好的一类,我们来学习如何使用。

 

PDO原理

加载PDO

在新版本的PHP中不需要加载PDO,即可以使用PDO类

查看:phpinfo();

开启PDO所支持的数据库

PDO简介

PDO类

PDO类主要提供对数据库的连接操作,及SQL执行

__construct()构造函数

$dsn        DataSourceName        数据源名

格式:

    数据库类型:        mysql

    主机:                host:locahost

    端口                port:3306

    数据库名            dbname:所连接的数据库

    字符集                charset:utf8

    $dsn = "mysql:host=主机名;port=端口号;dbname=数据库名;charset=字符集"

示例:

    $dsn = "mysql:host=localhost;port=3306;dbname=php;charset=utf8";    

    $user    用户名

    $pwd    密码

操作数据库的步骤:

1、连接

2、设置字符集

3、选择数据库

示例:

执行sql

query()        执行sql的方法        主要用于select语句

返回值是PDOStatement

exec()        执行sql的方法        主要用于增、删、改

示例:

PDOStatement对象,主要用于接收PDO对数据库的sql操作

    此对象的作用,封装了对数据库操作的返回信息。

    此不需创建,由pdo的sql执行语句,自动返回此对象

删除操作

示例:

rowcount()方法,返回所有受影响的行数     相当于mysql_affected_rows()

添加操作

示例:

PDO对象->lastInsertId();

修改操作:

查询操作

查询的操作的返回值也被封装在PDOStatment对象中,通过此对象的方法来获取数据。

fetch();            主要用于返回一行记录,默认返回的是一个关联+索引元素

控制返回数组类型的参数(PDO的一个类中常量)

PDO::FETCH_BOTH    (默认)返回的是一个关联+索引

PDO::FETCH_NUM        返回一个索引数据

PDO::FETCH_ASSOC    返回是一个关联数组

PDO::FETCH_OBJ        返回一个stdClass的对象,将结果集中的数据作为该对象的属性

PDO::FETCH_CLASS    返回的是一个类的对象

示例1:

示例2:

fetchAll()             一次获取所有的记录

示例:

fetchObject('类名');

    类必须存在

获取错误信息:

pdo对象的方法

errorCode        返回的是一个错误信息的代码

errorInfo()        返回的是一个错误信息的数组,信息在下标2中

示例:

 

PDOException异常类

主要用于记录PDO的错误,但是以对象思想进行处理。

异常:    异常是错误的一种,可以控制,比如程序中逻辑中的问题,异常出现在,执行过程。

错误:硬件错误,操作系统错误,程序是无法控制的

异常的语法:

    PHP中可以对异常进行try(检测)、throw(抛出)、catch(捕获),在try指定的代码进检测异常,如果遇到异常抛出错误提示信息,由与try对应的catch进行获取此错误信息。

try{

    //所检测的代码段

    【throw new exception('信息信息')】

}catch(PDOException $e){

    //输出错误信息

}

示例:

PDOException类,前是必须开启PDO异常模式,通过PDO的常量,来设置

PDO相关常量(pdo类中的属性)

主要用于设置PDO的结果集信息、错误信息、异常处理信息。

对PDO属性的操作

getAttribute();        主要用于获取PDO类的属性(常量)

setAttribute();        主要用于设置PDO类的属性

属性:

    PDO::ATTR_ERRMODE            主要用于设置错误的处理方式

取值:

    PDO::ERRMODE_SILENT            不显示错误

    PDO::ERRMODE_NATURAL        默认的

    PDO::ERRMODE_EXCEPTION        走异常模式

 

    PDO::ATTR_AUTOCIMMIT            事务的模式

    取值:1        0

    PDO::ATTR_CASE                    主要用于设置结果集关联数组的形式

    取值:

    PDO::CASE_UPPER                键名大写

    PDO::CASE_LOWER                键小写

示例:

 

 

PDO预处理

1、创建预处理

变化的SQL

POD自己设计一种占位符    :变量名

2、设置变量

通过execute()方法为占位符绑定数据

bindValue("占位符",值或变量);

bindParam("占位符",变量);

说明:

    都是用于为预处理绑定数据

    bindValue对占位符的传递是值的形式传递的

    bindParam对占位符的传递是地址的形式传递

    bindParam只需对占位符绑定一次即可。每次变量的值更改后,会自动将值重新绑定点给相应的占位符

PDO的事务

beginTransaction();

commit();

rollback();

exec("save point 回滚点");

示例:

 

原文地址:https://www.cnblogs.com/nyxd/p/5360158.html