思考:php支持很多数据库,因此有很多扩展提供给开发者使用,而绝大部分数据库的支持都是需要开发者再次进行封装的(因为初始化不一样,其他操作类似),那么这个时候如果一个团队要
做成支持多数据库的话,岂不是要封装所有要吃屎数据库的操作类?
引入:如果按照数据库支持的角度出发,的确针对不同的数据库需要封装不同的数据库操作类,而且为了保证使用者的操作方便,需要使用接口或者抽象类来进行规范数据库类的实现,
但是php制作团队已经考虑到了用户的使用便捷性,提供了一种统一的数据库方式,那就是pdo
PDO
PDO类:统一的数据库的初始化操作,包括连接认证和执行sql指令
PDOStatement类:数据解析操作,主要针对数据库结束操作(有数据结果返回)
PDAOException类:异常处理操作,针对所有PDO操作可能出现的错误采用的异常模式处理
总结:php作为一种成熟的变成语言,很多的通用操作都是一些团队做了支持,目的就是为了方便开发者们使用
PDO扩展【了解】
思考:PDO为什么要有多个类呢?彼此之间的工作是独立的还是联合的?
引入:PDO扩展在进行开发的时候,考虑到不同的应用场景和php版本,为了让PDO扩展的使用更加简洁,所以分成多个工具类
定义:PDO扩展,即PDO提供了一套帮助用户实现多个数据库操作的统一接口,通过使用PDO,开发人员不需要额外定义数据库对应的操作类,从而简化开发过程
1.PDO在php5以前,是需要手动加载扩展的,在php.ini配置文件中,会有这么一个扩展{在php以后就自动加载额不需要手动在加载}。
;extension =pdo #现在php.ini中中不到该配置项了
2.PDO是一种针对多种数据库的扩展,那就意味着PDO很庞大,所以为了保证php运行的效率,(系统会自动子开始时加载扩展),默认并没有开启对数据库产品的对应扩展,因此还需要在php.ini中开启
目前项目所需要的PDO对应数据库产品的支持
;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci #绝大部分项目使用的,只要去掉注释重启Apache即可 ;extension=pdo_odbc ;extension=pdo_pgsql ;extension=pdo_sqlite
3.加载PDO对mysql数据库产品的扩展,重启Apache,然后通过phpinfo()函数就可以查看PDO的加载情况了,至少有两个加载才算成功;PDO本身和PDO针对的数据库产品
总结:
1.PDO是一种外部提供的扩展,PHP如果想要直接调用,需要加载扩展
2.PDO因为支持产品很多,所以分解承了PDO支持扩展和PDO对应数据库产品的支持,PDO扩展在PHP5以后自动开启,而数据库产品的支持需要开发者根据实际项目所需数据库来选择
性开启
PDO操作【掌握】
思考:PDO是别人提供的一套扩展,php中还有很多类似的扩展,如果要使用扩展,到底该如何才能高效的使用呢?
引入:使用扩展库其实最简单的一种方式就是遵循别人所提供的操作手册,操作手册里不单有各种方法的介绍,还会有很多其他使用者提供的案例以及问题解决方案
PDO手册查阅【了解】
定义:手册查阅,是指对于已经添加到php系统内部的工具的使用查阅,通过翻阅手册,可以快速了解一些工具或者扩展的功能和使用方式。
1.查阅方式1:进入到操作手册,然后开打目录列表:函数参考->数据库扩展->数据库抽象层->PDO
注意:该方式能够方便且有序的看到一个工具或者扩展的所用功能和使用方式(初学者建议)
2.查阅方式2:直接在操作手册进入索引,然后在里面输入PDO
注意:该方式能够快速定位到查询的具体元素,需要大家有一定了解的情况下才能完成(系统是按顺序匹配),在
明确自己想要了解具体功能后,可以使用该方式
3.系统类使用方式:一般是了解对象的生成方式,以及各项功能的调用方式和具体效果。除了知道怎么用之外,一定还要去了解返回结果和意外状况
4.当我们了解一个工具的基本功能后,就可以找到入口开始对其学习和使用了,例如PDO中有三个类,每个类负责不同的功能需求,我们只要掌握彼此间的功能和练习
就可以使用PDO来实现数据库操作了。
总结:
1.任何一种系统支持,包括工具和扩展,都可以通过操作手册来学习和应用
2.PDO属于一种数据库扩展,可以子函数参考下对应的数据库扩展下找到
3.扩展学习应该是目的性的,了解有那些功能以及如何使用
4.PDO有三个类需要学习?