PHP PDO

PDO



类似于,mysql扩展,也是一种操作mysql服务器的方式。5.1版本后PHP发行,并随着PHP的发展,PHP认为PDO才是操作数据的合理方式。开始逐渐摒弃mysql扩展,为什么呢:PHP开始逐渐模块化,封装规范操作。


开启PDO对MySQL的支持



php.ini

这里写图片描述



PDO初用



这里写图片描述


先来段代码,后面会有做解释。


以下 是PHP手册中PDO操作类的查询位置:


这里写图片描述




PDO基础操作



实例化PDO对象


PDO上所有的操作,都需要从PDO对象上开启!一般需要4个参数

一:数据源名称:DSN。Data Source Name。用于表示,我们的数据的来源。例如:
这里写图片描述

第一个mysql 标示数据库类型
host : 数据库地址
port : 端口号
dbname: 数据库名称

二:用户名

三:密码

四:数据库选项,在连接数据库服务器后,做的初始化工作。

其中,最常用的就是:
在PDO中,所有的属性(选项)都是采用语义化的常量表示的。及MYSQL_ATTR_INIT_COMMAND只是PHP中类型码的语义化常量,在PHP编译中会把他转成类型码执行(这么做方便用户执行)。
PDO::MYSQL_ATTR_INIT_COMMAND,MySQL的初始化命令的属性

这里写图片描述

当实例化完,PDO对象时,PDO就自动完成数据库连接!

你只需要做的操作

$pdo = new PDO($dsn,$username,$password,$options);




执行SQL(结构化查询语言)


PDO对象的方法:
结果集对象 = query():查询类,select,show,desc
受影响的记录数 = exec():非查询类,insert,update,delete,表操作,库操作
用于,完成执行SQL。
只要是执行失败(SQL出错),都返回false!


查询类:如果是查询类,会先返回一个结果集。这个结果集表示执行的结果,下面会说

这里写图片描述

非查询类:

这里写图片描述





操作结果集对象 (PDOStatement)


为了获取最终的数据!
使用结果集对象(PDOStatement)上定义的方法来完成
典型的方式:
获取全部数据
二维数组 = fetchAll(); //全部的结果集
一维数组 = fetch() //结果集的第一行
字符串数据 = fetchColumn();//结果集第一行的第一个数据


可以在 fetchAll和fetch中使用参数:
PDO::FETCH_ASSOC, POD::FETCH_NUM, PDO::FETCH_BOTH
的方式,获取,关联数组,索引数组,两者都!


如下图


fetchAll();

这里写图片描述

fetch();

这里写图片描述

fetchColumn();

这里写图片描述





PDO对象的常用方法


$pdo->query();
查询结果集,返回的是结果集对象(PDOStatement)

$pdo->exec();
返回受影响行数

$pdo->errorCode();
错误状态码

$pdo->errorInfo()
错误信息数组(包含错误状态码,消息码,消息字符串)。

这里写图片描述


错误状态码可以查询手册获得其信息

这里写图片描述





比较经常使用的PDO方法



$pdo->lastInsertID();


用来获取 最新生成的(只有增加的时候) auto_increment的字段的值。最新的ID!

这里写图片描述



$pdo->Quote()
转义数据,并使用引号包裹!(防止SQL注入)

这里写图片描述

因此,在使用PDO执行SQL时,应该使用上面的方法,将数据进行转义处理,防止SQL注入(SQL-injection)


$pdo->beginTransaction();
开启事务


$pdo->rollback();
回滚事务


$pdo->commit();
提交事务


$pdo->inTransaction();
判断是否处于事务中!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章