第7章 PDO数据库抽象层教学设计资料.docx
- 文档编号:4878160
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:19
- 大小:291.46KB
第7章 PDO数据库抽象层教学设计资料.docx
《第7章 PDO数据库抽象层教学设计资料.docx》由会员分享,可在线阅读,更多相关《第7章 PDO数据库抽象层教学设计资料.docx(19页珍藏版)》请在冰豆网上搜索。
第7章PDO数据库抽象层教学设计资料
传智播客
《PHP网站开发实例教程》
教学设计
课程名称:
PHP网站开发实例教程
授课年级:
2015年级
授课学期:
2015学年第二学期
教师姓名:
某某老师
201年月日
课题名称
第7章PDO数据库抽象层
计划课时
6课时
内容分析
PDO指的是PHP数据对象,即PHPDataObject的简称。
它通过一种轻型、便利的API来统一操作各种数据库,目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MSSQLServer、ODBC、Oracle、PostgreSQL、SQLite和Sybase。
有效的解决了早期PHP版本中不同数据库扩展接口互不兼容的问题。
接下来本章将针对PDO数据库抽象层的使用进行详细的讲解。
教学目标
●熟练掌握PDO方式连接和选择数据库、执行SQL语句和处理结果集;
●掌握参数绑定和占位符的使用,学会使用预处理语句批量处理数据;
●熟悉PDO错误处理机制,能够在程序开发过程中灵活运用错误处理;
重点及措施
教学重点:
PDO连接数据库、执行SQL语句、处理结果集、预处理语句。
措施:
通过上机操作加强学习和补充案例进行巩固。
难点及措施
教学难点:
PDO连接数据库、预处理语句、错误处理机制。
措施:
通过上机操作加强学习和补充案例进行巩固。
教学方式
教学采用教师课堂讲授为主,使用教学PPT讲解。
教
学
过
程
第一课时
(【案例35】PDO基本使用)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习第六章“面向对象编程”的基础知识。
1、请简述面向对象的三大特征。
答案:
(1)封装性:
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。
(2)继承性:
继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。
(3)多态性:
多态性指的是同一操作作用于不同的对象,会产生不同的执行结果。
2、请简述类与对象的关系。
答案:
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。
类用于描述多个对象的共同特征,它是对象的模板。
对象用于描述现实中的个体,它是类的实例。
3、请简述PHP中的访问修饰限定符及其作用。
答案:
(1)public:
公有修饰符,类中的成员将没有访问限制,所有的外部成员都可以访问这个类的成员。
如果类的成员没有指定访问修饰符,则默认为public。
(2)protected:
保护成员修饰符,被修饰为protected的成员不能被该类的外部代码访问,但是对于该类的子类可以对其访问、读写等。
(3)private:
私有修饰符,被定义为private的成员,对于同一个类里的所有成员是可见的,即没有访问限制,但是在该类的外部以及该类的子类中是不允许访问私有成员的。
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
✧案例描述
PHP支持的数据库类型较多,但在早期的PHP版本中,各种不同的数据库扩展互不兼容,每个扩展都有各自的操作函数,导致PHP的维护非常困难,可移植性也非常差。
为了解决这一问题,PHP开发了PDO数据库抽象层,当选择不同数据库时,只需修改PDO中的DSN(数据源)即可。
接下来通过一个展示书籍列表的简单案例来讲解PDO的基本使用。
✧案例讲解
Ø案例分析
•创建书籍信息表,该表用于保存书籍的详细信息。
•向书籍信息表中添加数据,用于测试数据信息展示功能。
•使用PDO方式连接数据库、选择数据库、设定字符集。
•编写SQL语句,查询出书籍信息表中所有的信息。
•执行SQL语句,并处理结果集。
•创建视图文件,将处理后的书籍信息展示到页面中。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“PDO连接数据库”、“执行SQL语句”、“处理结果集”等。
Ø讲解“PDO连接数据库”
(1)、教师通过代码对“PDO连接数据库”进行演示。
在连接数据库时,需要注意的是DSN的设置,“驱动名:
host=主机名;port=端口号;dbname=选择的数据库名称;charset=字符集”。
(2)、教师展示PPT对实例化PDO类的构造方法的各参数进行讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“执行SQL语句”
(1)、教师通过代码对“执行SQL语句”进行演示说明。
(2)、教师展示PPT对“执行SQL语句”进行归纳总结。
●query()方法主要用于有记录结果返回的操作,特别是SELECT操作。
●exec()则主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“处理结果集”
(1)、教师通过对各“处理结果集”的函数进行演示说明。
●fetch()方法可以从结果集中获取下一行数据;
●fetchColumn()方法用于获取结果集中单独一列;
●fetchAll()方法可以获取结果集中所有的行;
(2)、教师展示PPT进行一步对“处理结果集”函数参数以及注意事项进行详细讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
PDO连接数据库、执行SQL语句、处理结果集。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“PDO基本使用”
学完知识点后,让学生再次练习“PDO基本使用”。
以此使学生更熟练地掌握“PDO连接数据库”、“执行SQL语句”、“处理结果集”等知识点的使用。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø预习7.2节【案例36】预处理语句和7.3节【案例37】PDO错误处理机制。
Ø复习前面学过的知识点和案例,加强巩固。
第二课时
(【案例36】预处理语句、【案例37】PDO错误处理机制)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。
1、假设MySQL数据库安装在本地服务器上,数据库名称是data,数据库在默认端口上运行,用户名是root,密码是aa,数据库中有一个名为dept的表,表中有dname和loc两个字段,请用PDO取出dept表的所有记录。
答案:
1
php
2//设置DSN、用户名和密码
3$dsn='mysql:
host=127.0.0.1;port=3306;dbname=data;charset=utf8';
4$user='root';
5$pwd='aa';
6try{
7//连接数据库
8$pdo=newPDO($dsn,$user,$pwd);
9//执行SQL语句
10$rs=$pdo->query('select*fromdept');
11//处理结果集
12foreach($rsas$rows){
13echo$rows['dname'].'-'.$rows['loc'].'
';
14}
15}catch(PDOException$e){
16//输出异常信息
17echo$e->getMessage().'
';
18}
19?
>
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
【案例36】预处理语句
✧案例描述
PDO中有一种预处理语句机制,可以理解为SQL的一种编译过的模板,当需要以不同参数多次重复进行相同的查询时,使用预处理语句可以避免重复的分析、编译、优化周期,从而节省资源,提高运行效率。
同时,由于预处理语句实现了将SQL和数据的分离,因此可以防止SQL注入。
接下来演示PDO预处理语句的使用,向【案例35】中的books数据表一次插入多条数据。
✧案例讲解
Ø案例分析
•使用prepare()方法准备预处理的插入语句。
•利用bindParam()为预处理语句中的占位符绑定变量参数。
•使用execute()方法执行预处理语句。
•使用phpMyAdmin查看数据库,检查插入数据是否成功。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“prepare()方法”、“bindParam()方法”、“execute()方法”等。
Ø讲解“prepare()方法”
(1)、教师展示PPT对“prepare()方法”及参数进行讲解。
在预处理的SQL语句中可以使用占位符,而PDO支持两种占位符,即问号占位符(?
)和命名参数占位符(:
参数名称)。
例如:
insertinto`books`(`book_name`,`book_author`)values(?
?
);
insertinto`books`(`book_name`,`book_author`)values(:
name,:
author);
(2)、教师通过代码对“prepare()方法”的使用进行演示。
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“bindParam()方法”
(1)、教师对“bindParam()方法”的使用进行演示。
bindParam()方法可以将“变量参数”绑定到准备好的查询“占位符”上。
(2)、教师展示PPT对“bindParam()方法”的各个参数进行讲解。
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“execute()方法”
(1)、教师通过PPT对“execute()方法”的使用进行讲解。
execute()方法不仅可以执行预处理语句,还可以在不使用bindParam()方法时,通过参数设置进行参数绑定。
●当占位符为问号占位符(?
)时,需为execute()方法传递1个索引数组参数;
●当占位符为命名参数占位符(:
参数名称)时,需为execute()方法传递1个关联数组参数。
(2)、教师通过代码对“execute()方法”进行演示。
(3)、学生练习,教师巡视,对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
prepare()方法、execute()方法。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
【案例37】PDO错误处理机制
✧案例描述
在使用SQL语句操作数据库时,难免会出现各种各样的错误,比如语法错误、逻辑错误等。
为此,PDO提供了错误处理机制,能够捕获SQL语句中的错误,并提供了三种方案可以选择。
接下来在案例中添加错误处理,来体验并了解PDO的错误处理机制。
✧案例讲解
Ø案例分析
•连接数据库后,使用PDO默认处理错误的方式。
•使用预处理方式查询一个不存在的数据表。
•在执行完预处理语句后,输出一句话,观察运行结果。
•将错误处理方式修改为警告模式,观察并对比运行结果。
•将错误处理方式修改为异常模式,观察并对比运行结果。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“PDO错误处理默认模式”、“WARNING模式”、“EXCEPTION模式”等。
Ø讲解“PDO错误处理默认模式”
(1)、教师通过代码演示“PDO错误处理默认模式”。
$pdo->setAttribute(PDO:
:
ATTR_ERRMODE,PDO:
:
ERRMODE_SILENT);
(2)、教师展示PPT对“PDO错误处理默认模式”进行讲解。
此模式在错误发生时不进行任何操作,只简单的设置错误代码,程序员可以通过PDO提供的errorCode()和errorInfo()这两个方法对语句和数据库对象进行检查。
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“WARNING模式”
(1)、教师将错误模式设为“WARNING模式”,与PDO默认错误处理模式结果进行对比,让学生总结区别。
$pdo->setAttribute(PDO:
:
ATTR_ERRMODE,PDO:
:
ERRMODE_WARNING);
(2)、教师展示PPT对“WARNING模式”进行讲解。
当错误发生时,除了设置错误代码外,PDO还会发出一条E_WARNING信息。
(3)、学生练习,教师巡视,对疑难问题进行解答。
Ø讲解“EXCEPTION模式”
(1)、教师将错误模式设置为“EXCEPTION模式”,与前两种错误模式结果进行对比,让学生总结区别。
$pdo->setAttribute(PDO:
:
ATTR_ERRMODE,PDO:
:
ERRMODE_EXCEPTION);
(2)、教师展示PPT对“EXCEPTION模式”进行讲解。
在错误发生时,抛出相关异常,停止执行以下代码。
(3)、学生练习,教师巡视,对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
WARNING模式、EXCEPTION模式。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“预处理语句”与“PDO错误处理模式”
学完知识点后,让学生再次练习“预处理语句”与“PDO错误处理模式”。
以此使学生更熟练地掌握“预处理语句”、“WARNING模式”、“EXCEPTION模式”等知识点的使用。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø预习7.4节【案例38】文章管理系统。
Ø复习前面学过的知识点和案例,加强巩固。
第三课时、第四课时
(【案例38】文章管理系统)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。
1、简述PDO预处理语句的优点?
答案:
(1)只需编译一次后,可以传递相同或不同的参数多次执行。
(2)避免重复分析/编译/优化周期。
(3)由于是预编译语句,可以减少资源的占用,提高运行速度。
(4)防止SQL注入。
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
✧案例描述
文章管理系统是一种可以在网站中发布文章,并能够进行修改、删除等管理操作的系统,提高了网站中文章的查找、查看和管理的效率。
接下来,将使用PDO操作MySQL数据库的方式来存储文章相关信息,并结合前面学过的知识实现文章管理系统的开发。
✧案例讲解
Ø案例分析
•封装PDO方式操作数据库类。
•设计数据表,分别保存文章分类和文章详细信息。
•实现文章分类的添加、展示、排序功能。
•使用在线编辑器发表和修改文章。
•分页展示所有文章,并可以编辑和查看具体的文章。
•实现文章与文章分类删除的功能。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
→讲解“封装PDO类”
(1)、教师与学生互动:
给出封装PDO类需要实现的功能,然后让学生自己动手实现,与教师交流实现的想法与思路。
(2)、教师演示“封装PDO类”的实现过程。
(3)、学生练习,教师巡视,对疑难问题进行解答。
→讲解“文章分类功能”
(1)、教师展示PPT,让学生了解文章分类的具体需要实现的功能。
(2)、教师带领学生完成“文章分类添加”、“文章分类展示”以及“文章分类排序”的实现。
(3)、学生练习,教师巡视,对疑难问题进行解答。
→讲解“发表文章功能”
(1)、教师展示PPT,让学生了解发表文章功能效果。
(2)、教师带领学生完成“发表文章功能”的实现。
重点讲解在项目中加入在线编辑器的方法,如:
UEditor。
(3)、学生练习,教师巡视,对疑难问题进行解答。
→讲解“文章列表与文章展示”
(1)、教师展示PPT,让学生了解“文章列表”与“文章展示”的效果图。
文章列表:
文章展示:
(2)、教师带领学生分别完成“文章列表”与“文章展示”的实现。
在讲解“文章列表”时,要着重讲解分页的实现原理以及分页类的封装。
(3)、学生练习,教师巡视,对疑难问题进行解答。
→讲解“编辑文章功能”
(1)、教师展示PPT,让学生了解“编辑文章功能”的效果图。
(2)、教师让学生自己完成“编辑文章功能”的实现,最后教师再演示“编辑文章功能”的实现全过程,并指出学生在完成时的问题。
(3)、学生练习,教师巡视,对疑难问题进行解答。
→讲解“文章与分类删除”
(1)、教师展示PPT,让学生了解“文章与分类删除”的效果图。
(2)、教师通过代码演示“文章删除”与“分类删除”的具体实现,并讲解注意事项。
(3)、学生练习,教师巡视,对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
“封装PDO类”、“文章分类功能”、“发表文章功能”、“文章列表与展示”、“文章与分类删除”。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“文章管理系统”的制作
学完知识点后,让学生再制作一次“文章管理系统”。
以此使学生更熟练地掌握“封装PDO类”、“文章分类功能”、“发表文章功能”、“文章列表与文章展示”、“编辑文章功能”、“文章与分类删除”的使用。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø预习8.1节【案例39】ThinkPHP简单使用。
Ø复习前面学过的知识点和案例,加强巩固。
第五课时、第六课时
(上机测试)
教师发放测试题目及案例素材,学生进行上机测试。
以此检查学生对相关知识点的掌握情况。
测试完成后将作品通过平台提交给老师。
上机测试主要针对本章中需要重点掌握的知识点,以及在代码中容易出
错的操作步骤。
通过上机测试可以考察同学对PHP基本语法、流程控制语句、函数、数组、包含语句、流程替代语法的掌握程度。
(作品点评)
教师对学生的提交的上机测试作品进行点评,指出代码中容易出现bug的地方,并给与解答。
✧布置作业
Ø完成课后“动手实践”,并扫描二维码查看答案。
Ø预习8.1节【案例39】ThinkPHP简单使用。
教
学
后
记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 PDO数据库抽象层教学设计资料 PDO 数据库 抽象 教学 设计 资料